
     a                        S SK r S SKrS SKJrJrJr  S SKJrJrJ	r	J
r
JrJr  SSKJr  SSKJrJr  SSKJr  SSKJrJr  SS	KJr  SS
KJr   " S S\5      r\" 5       r\S:X  a  \ R<                  " S\R>                   S35        \ H  r \ R>                  \R>                  :X  d  M  \ RB                  (       a  \ RE                  5         \RF                  " \ 5        \ R<                  " S\R>                   S35        \ RH                  RJ                  \RH                  l%          O   \" \5        S\&S\&SS4S jr'\'" SS5        \'" SS5        g)    N)AnyClassVarDict)EnabledSaveTypeModsModTypesOptionsRegisterModSDKMod   )update_compression)disable_console_commandsenable_console_commands)cached_obj_find)AllHooksupdate_vendor_rerolling)migrate_all)SAVE_VERSIONc                   n  ^  \ rS rSr% Sr\\S'   Sr\\S'   Sr\\S'   \	 S3r
\\S	'   \R                  r\\S
'   \R                  r\\S'   Sr\\   \S'   S\S.r\\\4   \S'   \R,                  \S'   \R,                  \S'   SS jrSS jrSS jrS\SS4U 4S jjrS\R6                  S\SS4S jrSrU =r$ )SanitySaver   zSanity SaverName	apple1417AuthorzsDisables sanity check, and also saves items which don't serialize, which would have parts deleted even with it off.Descriptionz.2VersionTypesSaveEnabledStatezClear CacheCLEAR_CACHEEnable)EnterCSettingsInputsCompressOptionVendorsOptionreturnNc                     [         R                  " SSS5      U l        [         R                  " SSS5      U l        U R                  U R                  /U l         g )NzCompress SaveszCompress saves so that they take up less disk space. If you frequently save edit, you may want to turn this off to make doing so easier.Tz#Reroll Vendors on Level TransitionszVendors containing unserializable items will get broken if you switch levels. Turning this on rerolls vendors on transitions to preventing you from finding such items.F)r	   Booleanr$   r%   )selfs    _Z:\mnt\Skyabridged\SteamLibrary\steamapps\common\Borderlands 2\sdk_mods\SanitySaver\__init__.py__init__SanitySaver.__init__%   sY    %ooJ	
 %__1 
 ++T-?-?@    c                 P   [         R                  " 5         [        U R                  R                  5        [        U R                  R                  5        [        5         [        5         [        R                  " 5        H&  u  p[        R                  " XR                  U5        M(     g N)r   cache_clearr   r$   CurrentValuer   r%   r   r   r   items	unrealsdkRunHookr   )r)   funchooks      r*   r    SanitySaver.Enable5   sh    ##%4..;;< 2 2 ? ?@!"..*JDdIIt4 +r-   c                     [        5         [        R                  " 5        H#  n[        R                  " XR
                  5        M%     g r/   )r   r   keysr3   
RemoveHookr   )r)   r5   s     r*   DisableSanitySaver.Disable@   s*     "MMOD  yy1 $r-   actionc                 n   > XR                   :X  a  [        R                  " 5         g [        TU ]  U5        g r/   )r   r   r0   superSettingsInputPressed)r)   r=   	__class__s     r*   r@    SanitySaver.SettingsInputPressedE   s(    %%%'')G(0r-   option	new_valuec                 p    XR                   :X  a  [        U5        g XR                  :X  a  [        U5        g g r/   )r$   r   r%   r   )r)   rC   rD   s      r*   ModOptionChangedSanitySaver.ModOptionChangedK   s/    (((y))))#I. *r-   )r$   r	   r%   )r&   N) __name__
__module____qualname____firstlineno__r   str__annotations__r   r   r   r   r   Utilityr   r   LoadWithSettingsr   r   r   r#   r   r	   r(   r+   r    r;   r@   Baser   rF   __static_attributes____classcell__)rA   s   @r*   r   r      s    D#FC	%   #^2&GS&&&E8&(7(H(HoH!.K#. &NDcN 
 OO#??"A 	52
13 14 1/w|| / / / /r-   r   __main__[z] Manually loadedz] Removed last instance
mod_module	mod_classr&   c                    ^^  [         R                  " SU -   5      n[        X!5      mTR
                  mS[        SS 4UU4S jjnUTl        g ! [        [        4 a     g f = f)NzMods.r)   r&   c                    > [         R                  (       a  [         R                  5         S[         R                  ;   a  [         R                  S	 STR                   S3[         l        T" U 5        g )Nr!   z(<font color="#FFFF00">Incompatible with z</font>)instance	IsEnabledr;   r#   r   Status)r)   mod
old_enables    r*   
new_enable&_add_incompat_hook.<locals>.new_enablek   sQ    h---''0FsxxjPWX4r-   )	importlibimport_modulegetattrAttributeErrorImportErrorr    r   )rU   rV   moduler^   r\   r]   s       @@r*   _add_incompat_hookrf   b   sl    ((:)=>f( J D   CJ K( s   $A A A ConstructorMainExodus)(r3   r`   typingr   r   r   Mods.ModMenur   r   r   r	   r
   r   compression_handlerr   consoler   r   helpersr   hooksr   r   
migrationsr   save_managerr   r   rY   rH   Logr   r\   rZ   r;   removerA   rI   rL   rf    r-   r*   <module>ru      s
     & & V V 3 F $ 4 # &@/& @/F =zMMAhmm_$56788x}}$}}KKMMAhmm_,CDE -0MM,D,DH)  H 3 3 4 ( =& ) 8X &r-   