public void Init(PlayerBehaviour player) { this.player = player; CustomizationProfilesList profileList = FileManager.LoadFile <CustomizationProfilesList>(FILE_LIST_NAME + CustomizationProfilesList.FILE_TYPE); // not the first time we play if (profileList != null) { loadedProfiles = new CustomizationProfile[profileList.profilesNames.Length]; for (int i = 0; i < profileList.profilesNames.Length; i++) { loadedProfiles[i] = FileManager.LoadFile <CustomizationProfile>(profileList.profilesNames[i], PROFILE_FOLDER_NAME); } } else // first time we play { Debug.Log(debugTag + "No profile names found, generating default profile"); loadedProfiles = new CustomizationProfile[1]; loadedProfiles[0] = new CustomizationProfile("Default"); } preferences = FileManager.LoadFile <PlayerPreferences>(PLAYER_PREFERENCES_FILE_NAME + CustomizationProfilesList.FILE_TYPE); if (preferences == null) { preferences = new PlayerPreferences(); } InitInternal(); }
public void SaveCustomizationprofiles(CustomizationProfile[] profiles, int selectedProfileIndex) { DeleteLocalSave(profiles); CustomizationProfilesList profileList = new CustomizationProfilesList(profiles); FileManager.SaveFile(profileList, FILE_LIST_NAME + CustomizationProfilesList.FILE_TYPE); for (int i = 0; i < profiles.Length; i++) { FileManager.SaveFile(profiles[i], profileList.profilesNames[i], PROFILE_FOLDER_NAME); } preferences.selectedProfileIndex = selectedProfileIndex; FileManager.SaveFile(preferences, PLAYER_PREFERENCES_FILE_NAME + CustomizationProfilesList.FILE_TYPE); Debug.Log(debugTag + "All profiles have been saved localy"); }
void DeleteLocalSave(CustomizationProfile[] profiles) { List <CustomizationProfile> toDelete = new List <CustomizationProfile>(); List <CustomizationProfile> currentProfiles = new List <CustomizationProfile>(profiles); // searches for profiles that still exists and that were delete in game foreach (CustomizationProfile profile in loadedProfiles) { if (!currentProfiles.Contains(profile)) { toDelete.Add(profile); } } // delete profiles that do not exist anymore CustomizationProfilesList toDeleteNames = new CustomizationProfilesList(toDelete.ToArray()); foreach (string fileName in toDeleteNames.profilesNames) { FileManager.DeleteFile(fileName, PROFILE_FOLDER_NAME); } }