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, LookingToPlay = 6,
Invisible = 7, Invisible = 7,
Max = 8, Max = 8,
} }
// //
// EFriendFlags // EFriendFlags
// //
internal enum FriendFlags : int public enum FriendFlags : int
{ {
None = 0, None = 0,
Blocked = 1, Blocked = 1,
@ -600,7 +600,7 @@ internal enum FriendFlags : int
ChatMember = 4096, ChatMember = 4096,
All = 65535, All = 65535,
} }
// //
// EUserRestriction // EUserRestriction
// //

View File

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

View File

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