diff --git a/Facepunch.Steamworks/SteamClient.cs b/Facepunch.Steamworks/SteamClient.cs index a19dc59..5a1f066 100644 --- a/Facepunch.Steamworks/SteamClient.cs +++ b/Facepunch.Steamworks/SteamClient.cs @@ -170,11 +170,6 @@ namespace Steamworks /// public static AppId AppId { get; internal set; } - /// - /// Check if this SteamClient owns the specified lobby - /// - public static bool OwnsLobby( Lobby k ) => k.Owner.Id == SteamId; - /// /// Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't /// this returns true then it starts the Steam client if required and launches your game again through it, diff --git a/Facepunch.Steamworks/Structs/Friend.cs b/Facepunch.Steamworks/Structs/Friend.cs index bf717a5..5a3da5e 100644 --- a/Facepunch.Steamworks/Structs/Friend.cs +++ b/Facepunch.Steamworks/Structs/Friend.cs @@ -71,11 +71,6 @@ namespace Steamworks /// public bool IsSnoozing => State == FriendState.Snooze; - /// - /// Check if this Friend owns the specified lobby - /// - public bool OwnsLobby( Lobby k ) => k.Owner.Id == this.Id; - public Relationship Relationship => SteamFriends.Internal.GetFriendRelationship( Id ); diff --git a/Facepunch.Steamworks/Structs/Lobby.cs b/Facepunch.Steamworks/Structs/Lobby.cs index 46a1bcd..e782690 100644 --- a/Facepunch.Steamworks/Structs/Lobby.cs +++ b/Facepunch.Steamworks/Structs/Lobby.cs @@ -210,5 +210,9 @@ namespace Steamworks.Data set => SteamMatchmaking.Internal.SetLobbyOwner( Id, value.Id ); } + /// + /// Check if the specified SteamId owns the lobby + /// + public bool IsOwnedBy( SteamId k ) => Owner.Id == k; } } \ No newline at end of file diff --git a/Facepunch.Steamworks/Structs/LobbyQuery.cs b/Facepunch.Steamworks/Structs/LobbyQuery.cs index e7f80e6..8ee168d 100644 --- a/Facepunch.Steamworks/Structs/LobbyQuery.cs +++ b/Facepunch.Steamworks/Structs/LobbyQuery.cs @@ -64,7 +64,7 @@ namespace Steamworks.Data #endregion #region Numerical filters - internal Dictionary, LobbyComparison> numericalFilters; + internal List numericalFilters; /// /// Numerical filter where value is less than the value provided @@ -114,9 +114,9 @@ namespace Steamworks.Data throw new System.ArgumentException( $"Key length is longer than {SteamMatchmaking.MaxLobbyKeyLength}", nameof( key ) ); if ( numericalFilters == null ) - numericalFilters = new Dictionary, LobbyComparison>(); + numericalFilters = new List(); - numericalFilters.Add( new KeyValuePair( key, value ), compare ); + numericalFilters.Add( new NumericalFilter( key, value, compare ) ); } #endregion @@ -201,7 +201,7 @@ namespace Steamworks.Data { foreach ( var n in numericalFilters ) { - SteamMatchmaking.Internal.AddRequestLobbyListNumericalFilter( n.Key.Key, n.Key.Value, n.Value ); + SteamMatchmaking.Internal.AddRequestLobbyListNumericalFilter( n.Key, n.Value, n.Comparer ); } } diff --git a/Facepunch.Steamworks/Structs/NumericalFilter.cs b/Facepunch.Steamworks/Structs/NumericalFilter.cs new file mode 100644 index 0000000..519419f --- /dev/null +++ b/Facepunch.Steamworks/Structs/NumericalFilter.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Steamworks.Data +{ + struct NumericalFilter + { + public string Key { get; internal set; } + public int Value { get; internal set; } + public LobbyComparison Comparer { get; internal set; } + + internal NumericalFilter ( string k, int v, LobbyComparison c ) + { + Key = k; + Value = v; + Comparer = c; + } + } +}