diff --git a/Facepunch.Steamworks/Structs/UgcQuery.cs b/Facepunch.Steamworks/Structs/UgcQuery.cs index ba676ec..cca9874 100644 --- a/Facepunch.Steamworks/Structs/UgcQuery.cs +++ b/Facepunch.Steamworks/Structs/UgcQuery.cs @@ -150,6 +150,7 @@ namespace Steamworks.Ugc TotalCount = (int)result.Value.TotalMatchingResults, CachedData = result.Value.CachedData, ReturnsKeyValueTags = WantsReturnKeyValueTags ?? false, + ReturnsDefaultStats = WantsDefaultStats ?? true, //true by default }; } @@ -302,5 +303,15 @@ namespace Steamworks.Ugc } #endregion - } + + #region LoadingBehaviour + + bool? WantsDefaultStats; //true by default + /// + /// Set to false to disable, by default following stats are loaded: NumSubscriptions, NumFavorites, NumFollowers, NumUniqueSubscriptions, NumUniqueFavorites, NumUniqueFollowers, NumUniqueWebsiteViews, ReportScore, NumSecondsPlayed, NumPlaytimeSessions, NumComments, NumSecondsPlayedDuringTimePeriod, NumPlaytimeSessionsDuringTimePeriod + /// + public QueryType WithDefaultStats( bool b ) { WantsDefaultStats = b; return this; } + + #endregion + } } \ No newline at end of file diff --git a/Facepunch.Steamworks/Structs/UgcResultPage.cs b/Facepunch.Steamworks/Structs/UgcResultPage.cs index f2c45c3..41ed08c 100644 --- a/Facepunch.Steamworks/Structs/UgcResultPage.cs +++ b/Facepunch.Steamworks/Structs/UgcResultPage.cs @@ -13,6 +13,8 @@ namespace Steamworks.Ugc public bool CachedData; internal bool ReturnsKeyValueTags; + internal bool ReturnsDefaultStats; + public IEnumerable Entries { get @@ -25,19 +27,23 @@ namespace Steamworks.Ugc { var item = Item.From( details ); - item.NumSubscriptions = GetStat( i, ItemStatistic.NumSubscriptions ); - item.NumFavorites = GetStat( i, ItemStatistic.NumFavorites ); - item.NumFollowers = GetStat( i, ItemStatistic.NumFollowers ); - item.NumUniqueSubscriptions = GetStat( i, ItemStatistic.NumUniqueSubscriptions ); - item.NumUniqueFavorites = GetStat( i, ItemStatistic.NumUniqueFavorites ); - item.NumUniqueFollowers = GetStat( i, ItemStatistic.NumUniqueFollowers ); - item.NumUniqueWebsiteViews = GetStat( i, ItemStatistic.NumUniqueWebsiteViews ); - item.ReportScore = GetStat( i, ItemStatistic.ReportScore ); - item.NumSecondsPlayed = GetStat( i, ItemStatistic.NumSecondsPlayed ); - item.NumPlaytimeSessions = GetStat( i, ItemStatistic.NumPlaytimeSessions ); - item.NumComments = GetStat( i, ItemStatistic.NumComments ); - item.NumSecondsPlayedDuringTimePeriod = GetStat( i, ItemStatistic.NumSecondsPlayedDuringTimePeriod ); - item.NumPlaytimeSessionsDuringTimePeriod = GetStat( i, ItemStatistic.NumPlaytimeSessionsDuringTimePeriod ); + + if ( ReturnsDefaultStats ) + { + item.NumSubscriptions = GetStat( i, ItemStatistic.NumSubscriptions ); + item.NumFavorites = GetStat( i, ItemStatistic.NumFavorites ); + item.NumFollowers = GetStat( i, ItemStatistic.NumFollowers ); + item.NumUniqueSubscriptions = GetStat( i, ItemStatistic.NumUniqueSubscriptions ); + item.NumUniqueFavorites = GetStat( i, ItemStatistic.NumUniqueFavorites ); + item.NumUniqueFollowers = GetStat( i, ItemStatistic.NumUniqueFollowers ); + item.NumUniqueWebsiteViews = GetStat( i, ItemStatistic.NumUniqueWebsiteViews ); + item.ReportScore = GetStat( i, ItemStatistic.ReportScore ); + item.NumSecondsPlayed = GetStat( i, ItemStatistic.NumSecondsPlayed ); + item.NumPlaytimeSessions = GetStat( i, ItemStatistic.NumPlaytimeSessions ); + item.NumComments = GetStat( i, ItemStatistic.NumComments ); + item.NumSecondsPlayedDuringTimePeriod = GetStat( i, ItemStatistic.NumSecondsPlayedDuringTimePeriod ); + item.NumPlaytimeSessionsDuringTimePeriod = GetStat( i, ItemStatistic.NumPlaytimeSessionsDuringTimePeriod ); + } if ( SteamUGC.Internal.GetQueryUGCPreviewURL( Handle, i, out string preview ) ) {