
    Rgb.                     J    S SK r SSKJr  S SKrS SKrS\4S jr " S S5      rg)    N   )bl2toolsreturnc                      [         R                  " 5       R                  5       R                  5       R	                  5       $ )N)	unrealsdk	GetEngineGetCurrentWorldInfoGetStreamingPersistentMapNamelower     ]Z:\mnt\Skyabridged\SteamLibrary\steamapps\common\Borderlands 2\sdk_mods\BSABT\betterspawns.py_get_map_namer      s,     446TTV\\^^r   c                   r    \ rS rSrS\4S jrS rS rS\R                  4S jr
S\R                  4S	 jrS
rg)Spawns   pathc                     Xl         [        R                  R                  U R                   S5      U l        SU l        SU l        SU l        SU l        g )Nzspawnpoint.jsonTr    )	PATHosr   joinspawnpoints_pathb_load_travel	b_load_tpset_location_counterfilename)selfr   s     r   __init__Spawns.__init__   sA    	%'WW\\$))=N%O#'#)*!r   c                   ^  S[         R                  S[         R                  S[         R                  S[        4U 4S jjnS[         R                  S[         R                  S[         R                  S[        4U 4S jjnS[         R                  S[         R                  S[         R                  S[        4U 4S jjnS[         R                  S[         R                  S[         R                  S[        4U 4S jjn[         R
                  " S	S
U5        [         R
                  " SSU5        [         R
                  " SSU5        [         R
                  " SSU5        g )Ncallerfunctionparamsr   c                   > [         R                  " 5       R                  5       R                  5       R	                  5       nUS:w  ay  TR
                  (       a  TR                  (       dW  UR                  Tl        TR                  [         R                  " 5       R                  5       R                  R                  5        g)NmenumapT)r   r   r	   r
   r   r   r   Filenamer   save_spawn_stationGRI$ActiveRespawnCheckpointTeleportActorr"   r#   r$   map_namer   s       r   hk_save_game#Spawns.Enable.<locals>.hk_save_game   s    
 &//1EEGeegmmoH 9$dnnASAS &'''')==?CChh r   c                    > UR                   (       d  UR                  (       aX  STl        STl        STl        [
        R                  " 5       nUR                  UR                  5       R                  5      Tl
        g)NTr   )bIsInitialSpawnbIsClassChanger   r   r   r   get_player_controllerGetSaveGameNameFromidGetCachedSaveGame
SaveGameIdr   )r"   r#   r$   pcr   s       r   hk_load_save#Spawns.Enable.<locals>.hk_load_save(   s_    
 %%)>)>%)"!%,-)335 " 8 89M9M9O9Z9Z [r   c                    > [        5       nUS;   a  gTR                  (       a,  STl        TR                  [        R                  " 5       5        ggN)loader	fakeentryTF)r   r   set_spawn_locationr   r2   r+   s       r   hk_spawn_travel&Spawns.Enable.<locals>.hk_spawn_travel6   sF    
 *OH22!!%*"''(F(F(HIr   c                    > [        5       nUS;   a  gTR                  (       a+  STl        TR                  [        R                  " 5       5        gr:   )r   r   r=   r   r2   r+   s       r   hk_spawn_tp"Spawns.Enable.<locals>.hk_spawn_tpE   s@    
 *OH22~~!&''(F(F(HIr   )WillowGame.WillowSaveGameManager.SaveGameSaveGame_HookBSABT;WillowGame.WillowPlayerController.ShouldLoadSaveGameOnSpawnLoadSaveBSABT7WillowGame.WillowPlayerController.ClientSetPawnLocationTravelHookBSABT5WillowGame.WillowPlayerController.StopTeleporterSoundSpawnHookBSABT)r   UObject	UFunctionFStructboolRegisterHook)r   r-   r7   r>   rA   s   `    r   EnableSpawns.Enable   sS   	!))	#--	 "))	 		"	!))	#--	 "))	 			!))	#--	 "))	 			!))	#--	 "))	 		 	7 	

 	I	

 	E	

 	C	
r   c                     [         R                  " SS5        [         R                  " SS5        [         R                  " SS5        [         R                  " SS5        g )	NrC   rD   rE   OnSpawn_HookBSABTrG   rH   rI   rJ   )r   
RemoveHook)r   s    r   DisableSpawns.Disableh   sJ    HJ^_Z\opVXijTVfgr   stationc                    0 n[         R                  R                  U R                  5      (       a6  [	        U R                  S5       n [
        R                  " U5      nS S S 5        [	        U R                  S5       nUR                  S   R                  nUR                  S   R                  n[        5       [        R                  " U5      UR                   UR"                  UR$                  4UR&                  UR(                  S4S.X R*                  '   [
        R,                  " X#SS9  S S S 5        g ! [         a    [        R                  " S5         Nf = f! , (       d  f       GN= f! , (       d  f       g = f)NrzError loading spawnpoint.jsonwr   )MapNameSaveStationPositionRotation   )indent)r   r   existsr   openjsonload	Exceptionr   Log
ExitPointsLocationr^   r   r   get_obj_path_nameXYZPitchYawr   dump)r   rW   my_spawn_dictfileexit_posexit_rots         r   r(   Spawns.save_spawn_stationn   s   77>>$//00d++S1TC$(IIdOM 2 $''-))!,55H))!,55H(?'99'B%ZZXZZ@%^^X\\1=	,M--( IIm!4 .-	 ! CMM"ABC 21 .-s7   E	D5=B/E-5 EEEE
E*-
E;r6   c                    [         R                  R                  U R                  5      (       a  [	        U R                  S5       n [
        R                  " U5      n[        5       X0R                     S   :w  a
   S S S 5        g [        R                  " SX0R                     S   5      n[        R                  " 5       R                  5       R                  nXEl        [        X0R                     S   5      UR                   l        [        X0R                     S   5      Ul        S S S 5        g [        R(                  " U R                   S35        g ! [&         a    [        R(                  " S5         NOf = f! , (       d  f       g = f)	NrY   r[   Objectr\   r]   r^   z"Could not load the spawnpoint.jsonz did not exist yet.)r   r   ra   r   rb   rc   rd   r   r   r   
FindObjectr   r	   r)   r*   tuplePawnrh   r^   re   rf   )r   r6   rq   rp   last_save_stationgris         r   r=   Spawns.set_spawn_location   s-   77>>$//00d++S1TH$(IIdOM %-*Fy*QQ 21 )2(<(<X}UbUbGcdqGr(s%#--/CCEIIC?P<',]==-I*-U'VBGG$"'mm(DZ(P"QBK 21" MMT2233FGH ! HMM"FGH 21s1   E83EB!E E52E84E55E88
F)r   r   r   r   r   r   N)__name__
__module____qualname____firstlineno__strr   rP   rU   r   rK   r(   r=   __static_attributes__r   r   r   r   r      sA     S  Q
fh5)*;*; 5,IY%6%6 Ir   r   )r   r   r   rc   r   r   r   r   r   r   r   <module>r      s-       	_s _MI MIr   