From 42762eabbda70cf7ee95e9764f71a5e47b1068eb Mon Sep 17 00:00:00 2001 From: James King Date: Wed, 16 Mar 2022 21:23:18 +0100 Subject: [PATCH] Added missing methods needed by Chippy --- Facepunch.Steamworks/SteamUgc.cs | 8 ++++++++ Facepunch.Steamworks/Structs/Leaderboard.cs | 6 +++--- Facepunch.Steamworks/Structs/LeaderboardEntry.cs | 7 ++++--- Facepunch.Steamworks/Structs/UgcItem.cs | 2 ++ 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Facepunch.Steamworks/SteamUgc.cs b/Facepunch.Steamworks/SteamUgc.cs index 6f860e8..8c38253 100644 --- a/Facepunch.Steamworks/SteamUgc.cs +++ b/Facepunch.Steamworks/SteamUgc.cs @@ -200,5 +200,13 @@ namespace Steamworks return status?.Accepted; } + public static PublishedFileId[] GetSubscribedItemIds() + { + var count = Internal.GetNumSubscribedItems(); + var ids = new PublishedFileId[count]; + Internal.GetSubscribedItems(ids, count); + + return ids; + } } } diff --git a/Facepunch.Steamworks/Structs/Leaderboard.cs b/Facepunch.Steamworks/Structs/Leaderboard.cs index ed7deb8..e66730d 100644 --- a/Facepunch.Steamworks/Structs/Leaderboard.cs +++ b/Facepunch.Steamworks/Structs/Leaderboard.cs @@ -51,9 +51,9 @@ namespace Steamworks.Data /// /// Attaches a piece of user generated content the user's entry on a leaderboard /// - public async Task AttachUgc( Ugc file ) + public async Task AttachUgc( PublishedFileId file ) { - var r = await SteamUserStats.Internal.AttachLeaderboardUGC( Id, file.Handle ); + var r = await SteamUserStats.Internal.AttachLeaderboardUGC( Id, file.Value ); if ( !r.HasValue ) return Result.Fail; return r.Value.Result; @@ -157,4 +157,4 @@ namespace Steamworks.Data } #endregion } -} \ No newline at end of file +} diff --git a/Facepunch.Steamworks/Structs/LeaderboardEntry.cs b/Facepunch.Steamworks/Structs/LeaderboardEntry.cs index 82eb26f..eb83a44 100644 --- a/Facepunch.Steamworks/Structs/LeaderboardEntry.cs +++ b/Facepunch.Steamworks/Structs/LeaderboardEntry.cs @@ -8,7 +8,7 @@ namespace Steamworks.Data public int GlobalRank; public int Score; public int[] Details; - // UGCHandle_t m_hUGC + public PublishedFileId? Ugc; internal static LeaderboardEntry From( LeaderboardEntry_t e, int[] detailsBuffer ) { @@ -17,7 +17,8 @@ namespace Steamworks.Data User = new Friend( e.SteamIDUser ), GlobalRank = e.GlobalRank, Score = e.Score, - Details = null + Details = null, + Ugc = e.UGC == 0 ? null : (PublishedFileId?) e.UGC }; if ( e.CDetails > 0 ) @@ -28,4 +29,4 @@ namespace Steamworks.Data return r; } } -} \ No newline at end of file +} diff --git a/Facepunch.Steamworks/Structs/UgcItem.cs b/Facepunch.Steamworks/Structs/UgcItem.cs index fb63898..f8e288f 100644 --- a/Facepunch.Steamworks/Structs/UgcItem.cs +++ b/Facepunch.Steamworks/Structs/UgcItem.cs @@ -124,6 +124,8 @@ namespace Steamworks.Ugc public bool IsSubscribed => (State & ItemState.Subscribed) == ItemState.Subscribed; public bool NeedsUpdate => (State & ItemState.NeedsUpdate) == ItemState.NeedsUpdate; + public bool IsGameManagedItem => details.FileType == WorkshopFileType.GameManagedItem; + public string Directory { get