internal SelfUser WithState(CMsgClientPersonaState.Friend state, ClientPersonaStateFlag flag) { var before = (SelfUser)MemberwiseClone(); if (flag.HasFlag(ClientPersonaStateFlag.Presence)) { before._avatarHash = ImmutableArray.Create(state.avatar_hash); before._state = (PersonaState)state.persona_state; before._stateFlags = (PersonaStateFlag)state.persona_state_flags; } if (flag.HasFlag(ClientPersonaStateFlag.PlayerName)) { before._playerName = state.player_name; } if (flag.HasFlag(ClientPersonaStateFlag.LastSeen)) { before._lastLogoff = DateTimeOffset.FromUnixTimeSeconds(state.last_logoff); before._lastLogon = DateTimeOffset.FromUnixTimeSeconds(state.last_logon); } if (flag.HasFlag(ClientPersonaStateFlag.Status)) { before._onlineSessionInstances = state.online_session_instances; before._publishedInstanceId = state.published_instance_id; } if (flag.HasFlag(ClientPersonaStateFlag.QueryPort | ClientPersonaStateFlag.SourceID | ClientPersonaStateFlag.GameDataBlob | ClientPersonaStateFlag.GameExtraInfo)) { before._game = GameInfo.Create(state); } return(before); }
internal Clan WithPersonaState(CMsgClientPersonaState.Friend state, ClientPersonaStateFlag flag) { var before = (Clan)MemberwiseClone(); if (flag.HasFlag(ClientPersonaStateFlag.PlayerName)) { before._name = state.player_name; } if (flag.HasFlag(ClientPersonaStateFlag.Presence)) { before._avatar = ImmutableArray.Create(state.avatar_hash); } if (flag.HasFlag(ClientPersonaStateFlag.ClanTag)) { before._tag = state.clan_tag; } return(before); }
internal static Clan Create(SteamNetworkClient client, ClanRelationship relationship, CMsgClientPersonaState.Friend state, ClientPersonaStateFlag flag) { return(new Clan(client, state.friendid).WithRelationship(relationship).WithPersonaState(state, flag)); }
internal static SelfUser Create(SteamNetworkClient client, CMsgClientPersonaState.Friend state, ClientPersonaStateFlag flag) { return(new SelfUser(client, state.friendid).WithState(state, flag)); }
internal static User Create(SteamNetworkClient client, FriendRelationship relationship, CMsgClientPersonaState.Friend state, ClientPersonaStateFlag flag) { return(new User(client, state.friendid, relationship).WithState(state, flag)); }