public PlayerProfile(IPlayerExtendedProfile _extendedProfile = null) { if (_extendedProfile != null) { Ext = _extendedProfile; } }
/// <summary> /// Create new player profile, if not exist already, and save updated list of available players on PlayerPrefs. /// </summary> /// <param name="_newPlayer"></param> /// <param name="_extProfile"></param> /// <returns></returns> public IPlayerProfile CreateNewPlayer(IPlayerProfile _newPlayer, IPlayerExtendedProfile _extProfile = null) { if (!Options.AvailablePlayers.Exists(p => p == _newPlayer.Key)) { Options.AvailablePlayers.Add(_newPlayer.Key); SavePlayerSettings(_newPlayer); SaveAllOptions(); } return(_newPlayer); }
/// <summary> /// Save player settings on PlayerPrefs (do not update list of players and global options). /// </summary> /// <param name="_newPlayer"></param> /// <param name="_extProfile"></param> public void SavePlayerSettings(IPlayerProfile _newPlayer, IPlayerExtendedProfile _extProfile = null) { string storeKey = GetStoreKeyForPlayer(_newPlayer.Key); string serializedObjs = JsonUtility.ToJson(_newPlayer); if (serializedObjs != null) { PlayerPrefs.SetString(storeKey, serializedObjs); } else { Debug.Log("Unable to serialize player profile : " + _newPlayer.Key); } PlayerPrefs.Save(); }
/// <summary> /// Create new player with informations provided. /// </summary> /// <param name="_newPlayer"></param> /// <param name="_extProfile"></param> /// <returns>Player created or null if player with user id already exist.</returns> public IPlayerProfile CreateNewPlayer(IPlayerProfile _newPlayer, IPlayerExtendedProfile _extProfile = null) { return(ConcreteModuleImplementation.CreateNewPlayer(_newPlayer, _extProfile)); }
/// <summary> /// Save player settins. /// </summary> /// <param name="_newPlayer"></param> /// <param name="_extProfile"></param> public void SavePlayerSettings(IPlayerProfile _newPlayer, IPlayerExtendedProfile _extProfile = null) { ConcreteModuleImplementation.SavePlayerSettings(_newPlayer, _extProfile); }
/// <summary> /// Update player settings (and if, extended profile). /// </summary> /// <param name="_newPlayer"></param> /// <param name="_extProfile"></param> /// <returns></returns> public IPlayerProfile UpdatePlayer(IPlayerProfile _newPlayer, IPlayerExtendedProfile _extProfile = null) { SavePlayerSettings(_newPlayer); return(_newPlayer); }