@@ -134,7 +134,7 @@ private static bool LoadPlayerDataFromPlayerPrefs(string playerULID)
134
134
}
135
135
136
136
string playerDataJson = PlayerPrefs . GetString ( $ "{ PlayerDataSaveSlot } _{ playerULID } ") ;
137
- if ( ! LootLockerJson . TryDeserializeObject ( playerDataJson , out LootLockerPlayerData parsedPlayerData ) ) //TODO: auth platform is not parsed correctly. Write json test
137
+ if ( ! LootLockerJson . TryDeserializeObject ( playerDataJson , out LootLockerPlayerData parsedPlayerData ) )
138
138
{
139
139
return false ;
140
140
}
@@ -159,6 +159,36 @@ public static bool SaveStateExistsForPlayer(string playerULID)
159
159
return PlayerPrefs . HasKey ( $ "{ PlayerDataSaveSlot } _{ playerULID } ") ;
160
160
}
161
161
162
+ public static LootLockerPlayerData GetPlayerDataForPlayerWithUlidWithoutChangingState ( string playerULID )
163
+ {
164
+ if ( string . IsNullOrEmpty ( playerULID ) )
165
+ {
166
+ return new LootLockerPlayerData ( ) ;
167
+ }
168
+ LoadMetaDataFromPlayerPrefsIfNeeded ( ) ;
169
+ if ( ActiveMetaData == null )
170
+ {
171
+ return new LootLockerPlayerData ( ) ;
172
+ }
173
+
174
+ if ( ! SaveStateExistsForPlayer ( playerULID ) )
175
+ {
176
+ return new LootLockerPlayerData ( ) ;
177
+ }
178
+
179
+ if ( ActivePlayerData . TryGetValue ( playerULID , out var data ) )
180
+ {
181
+ return data ;
182
+ }
183
+
184
+ string playerDataJson = PlayerPrefs . GetString ( $ "{ PlayerDataSaveSlot } _{ playerULID } ") ;
185
+ if ( ! LootLockerJson . TryDeserializeObject ( playerDataJson , out LootLockerPlayerData parsedPlayerData ) )
186
+ {
187
+ return new LootLockerPlayerData ( ) ;
188
+ }
189
+ return parsedPlayerData ;
190
+ }
191
+
162
192
[ CanBeNull ]
163
193
public static LootLockerPlayerData GetStateForPlayerOrDefaultStateOrEmpty ( string playerULID )
164
194
{
@@ -330,6 +360,8 @@ public static List<string> ClearAllSavedStatesExceptForPlayer(string playerULID)
330
360
}
331
361
}
332
362
}
363
+
364
+ SetDefaultPlayerULID ( playerULID ) ;
333
365
return removedULIDs ;
334
366
}
335
367
@@ -360,6 +392,8 @@ public static void SetAllPlayersToInactiveExceptForPlayer(string playerULID)
360
392
{
361
393
ActivePlayerData . Remove ( key ) ;
362
394
}
395
+
396
+ SetDefaultPlayerULID ( playerULID ) ;
363
397
}
364
398
365
399
public static List < string > GetActivePlayerULIDs ( )
0 commit comments