diff options
| author | Alex Parrill <[email protected]> | 2019-06-05 22:34:44 -0400 |
|---|---|---|
| committer | Matthew Collins <[email protected]> | 2019-06-09 23:50:11 +0100 |
| commit | aa49b26053d17a4f0a80ae487678ed9791c5133c (patch) | |
| tree | af5cfba0d3be2e44015dda1fc768b0d7f086223a /steamworks-sys/src | |
| parent | Add SteamId::account_id to get the account ID (diff) | |
| download | steamworks-rs-aa49b26053d17a4f0a80ae487678ed9791c5133c.tar.xz steamworks-rs-aa49b26053d17a4f0a80ae487678ed9791c5133c.zip | |
Add partial UGC (Workshop) support
Supported major features are (un)subscribing from items, getting the list of currently
subscribed items, and performing searches against user-related lists (ex. currently subscribed,
favorited, ...) for the current app. Can be extended to other searches later.
Diffstat (limited to 'steamworks-sys/src')
| -rw-r--r-- | steamworks-sys/src/lib.cpp | 1 | ||||
| -rw-r--r-- | steamworks-sys/src/lib.rs | 25 |
2 files changed, 26 insertions, 0 deletions
diff --git a/steamworks-sys/src/lib.cpp b/steamworks-sys/src/lib.cpp index 2c5860d..ea05028 100644 --- a/steamworks-sys/src/lib.cpp +++ b/steamworks-sys/src/lib.cpp @@ -93,4 +93,5 @@ extern "C" { ISteamRemoteStorage* steam_rust_get_remote_storage() { return SteamRemoteStorage(); } ISteamGameServer* steam_rust_get_server() { return SteamGameServer(); } ISteamApps* steam_rust_get_server_apps() { return SteamGameServerApps(); } + ISteamUGC* steam_rust_get_ugc() { return SteamUGC(); } }
\ No newline at end of file diff --git a/steamworks-sys/src/lib.rs b/steamworks-sys/src/lib.rs index f90257d..f778485 100644 --- a/steamworks-sys/src/lib.rs +++ b/steamworks-sys/src/lib.rs @@ -26,6 +26,8 @@ pub struct ISteamRemoteStorage(c_void); pub struct ISteamGameServer(c_void); #[repr(transparent)] pub struct ISteamNetworking(c_void); +#[repr(transparent)] +pub struct ISteamUGC(c_void); #[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, Hash)] @@ -68,6 +70,7 @@ extern "C" { pub fn steam_rust_get_server() -> *mut ISteamGameServer; pub fn steam_rust_get_server_apps() -> *mut ISteamApps; pub fn steam_rust_get_networking() -> *mut ISteamNetworking; + pub fn steam_rust_get_ugc() -> *mut ISteamUGC; pub fn steam_rust_game_server_init(ip: u32, steam_port: u16, game_port: u16, query_port: u16, server_mode: EServerMode, version: *const c_char) -> c_int; pub fn steam_rust_is_steam_id_valid(id: u64) -> c_int; @@ -157,6 +160,28 @@ extern "C" { pub fn SteamAPI_ISteamUserStats_DownloadLeaderboardEntries(instance: *mut ISteamUserStats, leaderboard: SteamLeaderboard_t, data_request: ELeaderboardDataRequest, start: c_int, end: c_int) -> SteamAPICall_t; pub fn SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry(instance: *mut ISteamUserStats, entries: SteamLeaderboardEntries_t, index: c_int, entry: *mut LeaderboardEntry_t, details: *mut i32, details_max: c_int) -> u8; + pub fn SteamAPI_ISteamUGC_SuspendDownload(instance: *mut ISteamUGC, suspend: bool); + pub fn SteamAPI_ISteamUGC_SubscribeItem(instance: *mut ISteamUGC, publisher_field_id: u64) -> SteamAPICall_t; + pub fn SteamAPI_ISteamUGC_UnsubscribeItem(instance: *mut ISteamUGC, publisher_field_id: u64) -> SteamAPICall_t; + pub fn SteamAPI_ISteamUGC_GetItemState(instance: *mut ISteamUGC, publisher_field_id: u64) -> u32; + pub fn SteamAPI_ISteamUGC_GetNumSubscribedItems(instance: *mut ISteamUGC) -> u32; + pub fn SteamAPI_ISteamUGC_GetSubscribedItems(instance: *mut ISteamUGC, vec: *mut u64, max_entries: u32) -> u32; + pub fn SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(instance: *mut ISteamUGC, accountt_id: AccountID_t, list: EUserUGCList, matching: EUGCMatchingUGCType, oreder: EUserUGCListSortOrder, creator_app: AppId_t, consumer_app: AppId_t, page: u32) -> UGCQueryHandle_t; + pub fn SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(instance: *mut ISteamUGC, handle: UGCQueryHandle_t) -> bool; + pub fn SteamAPI_ISteamUGC_AddExcludedTag(instance: *mut ISteamUGC, handle: UGCQueryHandle_t, tag: *const c_char) -> bool; + pub fn SteamAPI_ISteamUGC_AddRequiredTag(instance: *mut ISteamUGC, handle: UGCQueryHandle_t, tag: *const c_char) -> bool; + pub fn SteamAPI_ISteamUGC_SetLanguage(instance: *mut ISteamUGC, handle: UGCQueryHandle_t, language: *const c_char) -> bool; + pub fn SteamAPI_ISteamUGC_SetMatchAnyTag(instance: *mut ISteamUGC, handle: UGCQueryHandle_t, any: bool) -> bool; + pub fn SteamAPI_ISteamUGC_SetReturnLongDescription(instance: *mut ISteamUGC, handle: UGCQueryHandle_t, any: bool) -> bool; + pub fn SteamAPI_ISteamUGC_SetReturnMetadata(instance: *mut ISteamUGC, handle: UGCQueryHandle_t, any: bool) -> bool; + pub fn SteamAPI_ISteamUGC_SetReturnChildren(instance: *mut ISteamUGC, handle: UGCQueryHandle_t, any: bool) -> bool; + pub fn SteamAPI_ISteamUGC_SetReturnAdditionalPreviews(instance: *mut ISteamUGC, handle: UGCQueryHandle_t, any: bool) -> bool; + pub fn SteamAPI_ISteamUGC_SetReturnOnlyIDs(instance: *mut ISteamUGC, handle: UGCQueryHandle_t, any: bool) -> bool; + pub fn SteamAPI_ISteamUGC_SetReturnTotalOnly(instance: *mut ISteamUGC, handle: UGCQueryHandle_t, any: bool) -> bool; + pub fn SteamAPI_ISteamUGC_SetAllowCachedResponse(instance: *mut ISteamUGC, handle: UGCQueryHandle_t, timeout: u32) -> bool; + pub fn SteamAPI_ISteamUGC_SendQueryUGCRequest(instance: *mut ISteamUGC, handle: UGCQueryHandle_t) -> SteamAPICall_t; + pub fn SteamAPI_ISteamUGC_GetQueryUGCResult(instance: *mut ISteamUGC, handle: UGCQueryHandle_t, index: u32, details: *mut SteamUGCDetails_t) -> bool; + /// https://partner.steamgames.com/doc/api/ISteamUserStats#RequestCurrentStats /// /// Returns true if successful |