Added SteamFriends.GetFriendsWithFlag

Added SteamFriends.GetFriendsWithFlag.
Reworked SteamFriends.GetFriends and SteamFriends.GetBlocked to work upon it.
I also had to expose the FriendFlags.
This commit is contained in:
Lukas Kastern 2019-10-11 16:44:27 +02:00
parent 06169693d0
commit 83aa37ce4f
3 changed files with 14 additions and 11 deletions

View File

@ -580,12 +580,12 @@ public enum FriendState : int
LookingToPlay = 6,
Invisible = 7,
Max = 8,
}
}
//
// EFriendFlags
//
internal enum FriendFlags : int
public enum FriendFlags : int
{
None = 0,
Blocked = 1,
@ -600,7 +600,7 @@ internal enum FriendFlags : int
ChatMember = 4096,
All = 65535,
}
//
// EUserRestriction
//

View File

@ -111,21 +111,23 @@ static unsafe void OnFriendChatMessage( GameConnectedFriendChatMsg_t data )
OnChatMessage( friend, typeName, message );
}
}
public static IEnumerable<Friend> GetFriendsWithFlag(FriendFlags flag)
{
for ( int i=0; i<Internal.GetFriendCount( (int)flag); i++ )
{
yield return new Friend( Internal.GetFriendByIndex( i, (int)flag ) );
}
}
public static IEnumerable<Friend> GetFriends()
{
for ( int i=0; i<Internal.GetFriendCount( (int) FriendFlags.Immediate ); i++ )
{
yield return new Friend( Internal.GetFriendByIndex( i, (int)FriendFlags.Immediate ) );
}
return GetFriendsWithFlag(FriendFlags.Immediate);
}
public static IEnumerable<Friend> GetBlocked()
{
for ( int i = 0; i < Internal.GetFriendCount( (int)FriendFlags.Blocked ); i++ )
{
yield return new Friend( Internal.GetFriendByIndex( i, (int)FriendFlags.Blocked) );
}
return GetFriendsWithFlag(FriendFlags.Blocked);
}
public static IEnumerable<Friend> GetPlayedWith()

View File

@ -65,6 +65,7 @@ public static bool ShouldCreate( string type )
internal static string Expose( string name )
{
if ( name == "FriendState" ) return "public";
if (name == "FriendFlags") return "public";
if ( name == "MusicStatus" ) return "public";
if ( name == "ParentalFeature" ) return "public";
if ( name == "AuthResponse" ) return "public";