Added missing methods to UgcItem and UgcQuery

Added Steamworks.Ugc.Query.WhereSearchText
Added Steamworks.Ugc.Item.VotesUp
Added Steamworks.Ugc.Item.VotesDown
Added Steamworks.Ugc.Item.Subscribe
Added Steamworks.Ugc.Item.Unsubscribe
This commit is contained in:
Jannik Nickel 2019-06-23 20:22:28 +02:00
parent fd50e3ba71
commit c4eff7f61a
2 changed files with 44 additions and 10 deletions

View File

@ -93,7 +93,17 @@ public Item( PublishedFileId id ) : this()
/// </summary>
public bool IsAcceptedForUse => details.AcceptedForUse;
public bool IsInstalled => (State & ItemState.Installed) == ItemState.Installed;
/// <summary>
/// The number of upvotes of this item
/// </summary>
public uint VotesUp => details.VotesUp;
/// <summary>
/// The number of downvotes of this item
/// </summary>
public uint VotesDown => details.VotesDown;
public bool IsInstalled => (State & ItemState.Installed) == ItemState.Installed;
public bool IsDownloading => (State & ItemState.Downloading) == ItemState.Downloading;
public bool IsDownloadPending => (State & ItemState.DownloadPending) == ItemState.DownloadPending;
public bool IsSubscribed => (State & ItemState.Subscribed) == ItemState.Subscribed;
@ -122,7 +132,7 @@ public bool Download( bool highPriority = false )
return SteamUGC.Internal.DownloadItem( Id, highPriority );
}
private ItemState State => (ItemState) SteamUGC.Internal.GetItemState( Id );
private ItemState State => (ItemState) SteamUGC.Internal.GetItemState( Id );
public static async Task<Item?> GetAsync( PublishedFileId id, int maxageseconds = 60 * 30 )
{
@ -156,10 +166,26 @@ public bool HasTag( string find )
return Tags.Contains( find, StringComparer.OrdinalIgnoreCase );
}
/// <summary>
/// Allows the user to rate a workshop item up or down.
/// </summary>
public async Task<bool> Vote( bool up )
/// <summary>
/// Allows the user to subscribe to this item
/// </summary>
public async Task<bool> Subscribe ()
{
var result = await SteamUGC.Internal.SubscribeItem( _id );
return result?.Result == Result.OK;
}
/// <summary>
/// Allows the user to unsubscribe from this item
/// </summary>
public async Task<bool> Unsubscribe ()
{
}
/// <summary>
/// Allows the user to rate a workshop item up or down.
/// </summary>
public async Task<bool> Vote( bool up )
{
var r = await SteamUGC.Internal.SetUserItemVote( Id, up );
return r?.Result == Result.OK;
@ -204,10 +230,10 @@ public async Task<bool> Vote( bool up )
public ulong NumSecondsPlayedDuringTimePeriod { get; internal set; }
public ulong NumPlaytimeSessionsDuringTimePeriod { get; internal set; }
/// <summary>
/// The URL to the preview image for this item
/// </summary>
public string PreviewImageUrl { get; internal set; }
/// <summary>
/// The URL to the preview image for this item
/// </summary>
public string PreviewImageUrl { get; internal set; }
/// <summary>
/// Edit this item

View File

@ -14,6 +14,7 @@ public struct Query
UGCQuery queryType;
AppId consumerApp;
AppId creatorApp;
string searchText;
public Query( UgcType type ) : this()
{
@ -90,6 +91,8 @@ internal Query LimitUser( SteamId steamid )
public Query SortByVoteScore() { userSort = UserUGCListSortOrder.VoteScoreDesc; return this; }
public Query SortByModeration() { userSort = UserUGCListSortOrder.ForModeration; return this; }
public Query WhereSearchText(string searchText) { this.searchText = searchText; return this; }
#endregion
#region Files
@ -227,6 +230,11 @@ void ApplyConstraints( UGCQueryHandle_t handle )
{
SteamUGC.Internal.SetRankedByTrendDays( handle, (uint)trendDays.Value );
}
if ( !string.IsNullOrEmpty( searchText ) )
{
SteamUGC.Internal.SetSearchText( handle, searchText );
}
}
#endregion