@@ -362,6 +362,7 @@ def __encoder(obj):
362362 )
363363
364364
365+ import re , logging
365366from UnityPy .helpers .TypeTreeGenerator import TypeTreeGenerator
366367
367368
@@ -373,25 +374,33 @@ def __main__():
373374 )
374375 parser .add_argument (
375376 "--json" ,
376- help = "Load tree dump in json format" ,
377- )
378- parser .add_argument (
379- "--assembly" ,
380- help = "Assembly to use for typetree generation" ,
377+ help = "Load tree dump in json format {str[fullname]: List[TypeTreeNode]},..." ,
381378 )
382379 parser .add_argument (
383380 "--unity-version" ,
384381 help = "Unity version to use for typetree generation" ,
385382 default = "2022.3.21f1" ,
386383 )
384+ parser .add_argument (
385+ "--filter" ,
386+ help = "Filter classnames by regex" ,
387+ default = ".*" ,
388+ )
389+ parser .add_argument (
390+ "--log-level" ,
391+ choices = ["DEBUG" , "INFO" , "WARNING" , "ERROR" , "CRITICAL" ],
392+ default = "WARNING" ,
393+ )
387394 parser .add_argument (
388395 "--outdir" ,
389396 help = "Output directory for generated code" ,
390397 default = "generated" ,
391398 )
392399 args = parser .parse_args ()
400+ logging .basicConfig (level = args .log_level )
393401 shutil .rmtree (args .outdir , ignore_errors = True )
394402 os .makedirs (args .outdir , exist_ok = True )
403+ typetree = dict ()
395404 if args .files :
396405 generator = TypeTreeGenerator (args .unity_version )
397406 generator .load_local_dll_folder (args .files )
@@ -403,12 +412,13 @@ def __main__():
403412 typetree [fullname ] = nodes
404413 except Exception as e :
405414 logger .error (f"Failed to generate typetree for { module } .{ fullname } " )
406- process_typetree (typetree , args .outdir )
407- return 0
408415 if args .json :
409- with open (args .file , "r" ) as f :
416+ with open (args .json , "r" ) as f :
410417 typetree = json .load (f )
411- process_typetree (typetree , args .outdir )
418+ if typetree :
419+ regex = re .compile (args .filter )
420+ typetree = {k : v for k , v in typetree .items () if regex .match (k )}
421+ process_typetree (typetree , args .outdir )
412422 return 0
413423 return - 1
414424
0 commit comments