Files
2026-02-21 16:45:37 +08:00

196 lines
6.9 KiB
C#

using System;
using System.Runtime.InteropServices;
namespace Steamworks
{
public static class SteamUtils
{
public static uint GetSecondsSinceAppActive()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_GetSecondsSinceAppActive(CSteamAPIContext.GetSteamUtils());
}
public static uint GetSecondsSinceComputerActive()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_GetSecondsSinceComputerActive(CSteamAPIContext.GetSteamUtils());
}
public static EUniverse GetConnectedUniverse()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_GetConnectedUniverse(CSteamAPIContext.GetSteamUtils());
}
public static uint GetServerRealTime()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_GetServerRealTime(CSteamAPIContext.GetSteamUtils());
}
public static string GetIPCountry()
{
InteropHelp.TestIfAvailableClient();
return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamUtils_GetIPCountry(CSteamAPIContext.GetSteamUtils()));
}
public static bool GetImageSize(int iImage, out uint pnWidth, out uint pnHeight)
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_GetImageSize(CSteamAPIContext.GetSteamUtils(), iImage, out pnWidth, out pnHeight);
}
public static bool GetImageRGBA(int iImage, byte[] pubDest, int nDestBufferSize)
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_GetImageRGBA(CSteamAPIContext.GetSteamUtils(), iImage, pubDest, nDestBufferSize);
}
public static bool GetCSERIPPort(out uint unIP, out ushort usPort)
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_GetCSERIPPort(CSteamAPIContext.GetSteamUtils(), out unIP, out usPort);
}
public static byte GetCurrentBatteryPower()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_GetCurrentBatteryPower(CSteamAPIContext.GetSteamUtils());
}
public static AppId_t GetAppID()
{
InteropHelp.TestIfAvailableClient();
return (AppId_t)NativeMethods.ISteamUtils_GetAppID(CSteamAPIContext.GetSteamUtils());
}
public static void SetOverlayNotificationPosition(ENotificationPosition eNotificationPosition)
{
InteropHelp.TestIfAvailableClient();
NativeMethods.ISteamUtils_SetOverlayNotificationPosition(CSteamAPIContext.GetSteamUtils(), eNotificationPosition);
}
public static bool IsAPICallCompleted(SteamAPICall_t hSteamAPICall, out bool pbFailed)
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_IsAPICallCompleted(CSteamAPIContext.GetSteamUtils(), hSteamAPICall, out pbFailed);
}
public static ESteamAPICallFailure GetAPICallFailureReason(SteamAPICall_t hSteamAPICall)
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_GetAPICallFailureReason(CSteamAPIContext.GetSteamUtils(), hSteamAPICall);
}
public static bool GetAPICallResult(SteamAPICall_t hSteamAPICall, IntPtr pCallback, int cubCallback, int iCallbackExpected, out bool pbFailed)
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_GetAPICallResult(CSteamAPIContext.GetSteamUtils(), hSteamAPICall, pCallback, cubCallback, iCallbackExpected, out pbFailed);
}
public static uint GetIPCCallCount()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_GetIPCCallCount(CSteamAPIContext.GetSteamUtils());
}
public static void SetWarningMessageHook(SteamAPIWarningMessageHook_t pFunction)
{
InteropHelp.TestIfAvailableClient();
NativeMethods.ISteamUtils_SetWarningMessageHook(CSteamAPIContext.GetSteamUtils(), pFunction);
}
public static bool IsOverlayEnabled()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_IsOverlayEnabled(CSteamAPIContext.GetSteamUtils());
}
public static bool BOverlayNeedsPresent()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_BOverlayNeedsPresent(CSteamAPIContext.GetSteamUtils());
}
public static SteamAPICall_t CheckFileSignature(string szFileName)
{
InteropHelp.TestIfAvailableClient();
using (InteropHelp.UTF8StringHandle szFileName2 = new InteropHelp.UTF8StringHandle(szFileName))
{
return (SteamAPICall_t)NativeMethods.ISteamUtils_CheckFileSignature(CSteamAPIContext.GetSteamUtils(), szFileName2);
}
}
public static bool ShowGamepadTextInput(EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText)
{
InteropHelp.TestIfAvailableClient();
using (InteropHelp.UTF8StringHandle pchDescription2 = new InteropHelp.UTF8StringHandle(pchDescription))
{
using (InteropHelp.UTF8StringHandle pchExistingText2 = new InteropHelp.UTF8StringHandle(pchExistingText))
{
return NativeMethods.ISteamUtils_ShowGamepadTextInput(CSteamAPIContext.GetSteamUtils(), eInputMode, eLineInputMode, pchDescription2, unCharMax, pchExistingText2);
}
}
}
public static uint GetEnteredGamepadTextLength()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_GetEnteredGamepadTextLength(CSteamAPIContext.GetSteamUtils());
}
public static bool GetEnteredGamepadTextInput(out string pchText, uint cchText)
{
InteropHelp.TestIfAvailableClient();
IntPtr intPtr = Marshal.AllocHGlobal((int)cchText);
bool flag = NativeMethods.ISteamUtils_GetEnteredGamepadTextInput(CSteamAPIContext.GetSteamUtils(), intPtr, cchText);
pchText = ((!flag) ? null : InteropHelp.PtrToStringUTF8(intPtr));
Marshal.FreeHGlobal(intPtr);
return flag;
}
public static string GetSteamUILanguage()
{
InteropHelp.TestIfAvailableClient();
return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamUtils_GetSteamUILanguage(CSteamAPIContext.GetSteamUtils()));
}
public static bool IsSteamRunningInVR()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_IsSteamRunningInVR(CSteamAPIContext.GetSteamUtils());
}
public static void SetOverlayNotificationInset(int nHorizontalInset, int nVerticalInset)
{
InteropHelp.TestIfAvailableClient();
NativeMethods.ISteamUtils_SetOverlayNotificationInset(CSteamAPIContext.GetSteamUtils(), nHorizontalInset, nVerticalInset);
}
public static bool IsSteamInBigPictureMode()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_IsSteamInBigPictureMode(CSteamAPIContext.GetSteamUtils());
}
public static void StartVRDashboard()
{
InteropHelp.TestIfAvailableClient();
NativeMethods.ISteamUtils_StartVRDashboard(CSteamAPIContext.GetSteamUtils());
}
public static bool IsVRHeadsetStreamingEnabled()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamUtils_IsVRHeadsetStreamingEnabled(CSteamAPIContext.GetSteamUtils());
}
public static void SetVRHeadsetStreamingEnabled(bool bEnabled)
{
InteropHelp.TestIfAvailableClient();
NativeMethods.ISteamUtils_SetVRHeadsetStreamingEnabled(CSteamAPIContext.GetSteamUtils(), bEnabled);
}
}
}