summaryrefslogtreecommitdiff
path: root/Assembly_Firstpass/Steamworks/SteamUser.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assembly_Firstpass/Steamworks/SteamUser.cs')
-rw-r--r--Assembly_Firstpass/Steamworks/SteamUser.cs205
1 files changed, 205 insertions, 0 deletions
diff --git a/Assembly_Firstpass/Steamworks/SteamUser.cs b/Assembly_Firstpass/Steamworks/SteamUser.cs
new file mode 100644
index 0000000..b5cde14
--- /dev/null
+++ b/Assembly_Firstpass/Steamworks/SteamUser.cs
@@ -0,0 +1,205 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace Steamworks;
+
+public static class SteamUser
+{
+ public static HSteamUser GetHSteamUser()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return (HSteamUser)NativeMethods.ISteamUser_GetHSteamUser(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static bool BLoggedOn()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_BLoggedOn(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static CSteamID GetSteamID()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return (CSteamID)NativeMethods.ISteamUser_GetSteamID(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static int InitiateGameConnection(byte[] pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint unIPServer, ushort usPortServer, bool bSecure)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_InitiateGameConnection(CSteamAPIContext.GetSteamUser(), pAuthBlob, cbMaxAuthBlob, steamIDGameServer, unIPServer, usPortServer, bSecure);
+ }
+
+ public static void TerminateGameConnection(uint unIPServer, ushort usPortServer)
+ {
+ InteropHelp.TestIfAvailableClient();
+ NativeMethods.ISteamUser_TerminateGameConnection(CSteamAPIContext.GetSteamUser(), unIPServer, usPortServer);
+ }
+
+ public static void TrackAppUsageEvent(CGameID gameID, int eAppUsageEvent, string pchExtraInfo = "")
+ {
+ InteropHelp.TestIfAvailableClient();
+ using InteropHelp.UTF8StringHandle pchExtraInfo2 = new InteropHelp.UTF8StringHandle(pchExtraInfo);
+ NativeMethods.ISteamUser_TrackAppUsageEvent(CSteamAPIContext.GetSteamUser(), gameID, eAppUsageEvent, pchExtraInfo2);
+ }
+
+ public static bool GetUserDataFolder(out string pchBuffer, int cubBuffer)
+ {
+ InteropHelp.TestIfAvailableClient();
+ IntPtr intPtr = Marshal.AllocHGlobal(cubBuffer);
+ bool flag = NativeMethods.ISteamUser_GetUserDataFolder(CSteamAPIContext.GetSteamUser(), intPtr, cubBuffer);
+ pchBuffer = (flag ? InteropHelp.PtrToStringUTF8(intPtr) : null);
+ Marshal.FreeHGlobal(intPtr);
+ return flag;
+ }
+
+ public static void StartVoiceRecording()
+ {
+ InteropHelp.TestIfAvailableClient();
+ NativeMethods.ISteamUser_StartVoiceRecording(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static void StopVoiceRecording()
+ {
+ InteropHelp.TestIfAvailableClient();
+ NativeMethods.ISteamUser_StopVoiceRecording(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static EVoiceResult GetAvailableVoice(out uint pcbCompressed)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_GetAvailableVoice(CSteamAPIContext.GetSteamUser(), out pcbCompressed, IntPtr.Zero, 0u);
+ }
+
+ public static EVoiceResult GetVoice(bool bWantCompressed, byte[] pDestBuffer, uint cbDestBufferSize, out uint nBytesWritten)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_GetVoice(CSteamAPIContext.GetSteamUser(), bWantCompressed, pDestBuffer, cbDestBufferSize, out nBytesWritten, bWantUncompressed_Deprecated: false, IntPtr.Zero, 0u, IntPtr.Zero, 0u);
+ }
+
+ public static EVoiceResult DecompressVoice(byte[] pCompressed, uint cbCompressed, byte[] pDestBuffer, uint cbDestBufferSize, out uint nBytesWritten, uint nDesiredSampleRate)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_DecompressVoice(CSteamAPIContext.GetSteamUser(), pCompressed, cbCompressed, pDestBuffer, cbDestBufferSize, out nBytesWritten, nDesiredSampleRate);
+ }
+
+ public static uint GetVoiceOptimalSampleRate()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_GetVoiceOptimalSampleRate(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static HAuthTicket GetAuthSessionTicket(byte[] pTicket, int cbMaxTicket, out uint pcbTicket)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return (HAuthTicket)NativeMethods.ISteamUser_GetAuthSessionTicket(CSteamAPIContext.GetSteamUser(), pTicket, cbMaxTicket, out pcbTicket);
+ }
+
+ public static EBeginAuthSessionResult BeginAuthSession(byte[] pAuthTicket, int cbAuthTicket, CSteamID steamID)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_BeginAuthSession(CSteamAPIContext.GetSteamUser(), pAuthTicket, cbAuthTicket, steamID);
+ }
+
+ public static void EndAuthSession(CSteamID steamID)
+ {
+ InteropHelp.TestIfAvailableClient();
+ NativeMethods.ISteamUser_EndAuthSession(CSteamAPIContext.GetSteamUser(), steamID);
+ }
+
+ public static void CancelAuthTicket(HAuthTicket hAuthTicket)
+ {
+ InteropHelp.TestIfAvailableClient();
+ NativeMethods.ISteamUser_CancelAuthTicket(CSteamAPIContext.GetSteamUser(), hAuthTicket);
+ }
+
+ public static EUserHasLicenseForAppResult UserHasLicenseForApp(CSteamID steamID, AppId_t appID)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_UserHasLicenseForApp(CSteamAPIContext.GetSteamUser(), steamID, appID);
+ }
+
+ public static bool BIsBehindNAT()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_BIsBehindNAT(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static void AdvertiseGame(CSteamID steamIDGameServer, uint unIPServer, ushort usPortServer)
+ {
+ InteropHelp.TestIfAvailableClient();
+ NativeMethods.ISteamUser_AdvertiseGame(CSteamAPIContext.GetSteamUser(), steamIDGameServer, unIPServer, usPortServer);
+ }
+
+ public static SteamAPICall_t RequestEncryptedAppTicket(byte[] pDataToInclude, int cbDataToInclude)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return (SteamAPICall_t)NativeMethods.ISteamUser_RequestEncryptedAppTicket(CSteamAPIContext.GetSteamUser(), pDataToInclude, cbDataToInclude);
+ }
+
+ public static bool GetEncryptedAppTicket(byte[] pTicket, int cbMaxTicket, out uint pcbTicket)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_GetEncryptedAppTicket(CSteamAPIContext.GetSteamUser(), pTicket, cbMaxTicket, out pcbTicket);
+ }
+
+ public static int GetGameBadgeLevel(int nSeries, bool bFoil)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_GetGameBadgeLevel(CSteamAPIContext.GetSteamUser(), nSeries, bFoil);
+ }
+
+ public static int GetPlayerSteamLevel()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_GetPlayerSteamLevel(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static SteamAPICall_t RequestStoreAuthURL(string pchRedirectURL)
+ {
+ InteropHelp.TestIfAvailableClient();
+ using InteropHelp.UTF8StringHandle pchRedirectURL2 = new InteropHelp.UTF8StringHandle(pchRedirectURL);
+ return (SteamAPICall_t)NativeMethods.ISteamUser_RequestStoreAuthURL(CSteamAPIContext.GetSteamUser(), pchRedirectURL2);
+ }
+
+ public static bool BIsPhoneVerified()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_BIsPhoneVerified(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static bool BIsTwoFactorEnabled()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_BIsTwoFactorEnabled(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static bool BIsPhoneIdentifying()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_BIsPhoneIdentifying(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static bool BIsPhoneRequiringVerification()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_BIsPhoneRequiringVerification(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static SteamAPICall_t GetMarketEligibility()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return (SteamAPICall_t)NativeMethods.ISteamUser_GetMarketEligibility(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static SteamAPICall_t GetDurationControl()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return (SteamAPICall_t)NativeMethods.ISteamUser_GetDurationControl(CSteamAPIContext.GetSteamUser());
+ }
+
+ public static bool BSetDurationControlOnlineState(EDurationControlOnlineState eNewState)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamUser_BSetDurationControlOnlineState(CSteamAPIContext.GetSteamUser(), eNewState);
+ }
+}