summaryrefslogtreecommitdiff
path: root/Assembly_Firstpass/Steamworks/SteamGameSearch.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assembly_Firstpass/Steamworks/SteamGameSearch.cs')
-rw-r--r--Assembly_Firstpass/Steamworks/SteamGameSearch.cs100
1 files changed, 100 insertions, 0 deletions
diff --git a/Assembly_Firstpass/Steamworks/SteamGameSearch.cs b/Assembly_Firstpass/Steamworks/SteamGameSearch.cs
new file mode 100644
index 0000000..7c55eef
--- /dev/null
+++ b/Assembly_Firstpass/Steamworks/SteamGameSearch.cs
@@ -0,0 +1,100 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace Steamworks;
+
+public static class SteamGameSearch
+{
+ public static EGameSearchErrorCode_t AddGameSearchParams(string pchKeyToFind, string pchValuesToFind)
+ {
+ InteropHelp.TestIfAvailableClient();
+ using InteropHelp.UTF8StringHandle pchKeyToFind2 = new InteropHelp.UTF8StringHandle(pchKeyToFind);
+ using InteropHelp.UTF8StringHandle pchValuesToFind2 = new InteropHelp.UTF8StringHandle(pchValuesToFind);
+ return NativeMethods.ISteamGameSearch_AddGameSearchParams(CSteamAPIContext.GetSteamGameSearch(), pchKeyToFind2, pchValuesToFind2);
+ }
+
+ public static EGameSearchErrorCode_t SearchForGameWithLobby(CSteamID steamIDLobby, int nPlayerMin, int nPlayerMax)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamGameSearch_SearchForGameWithLobby(CSteamAPIContext.GetSteamGameSearch(), steamIDLobby, nPlayerMin, nPlayerMax);
+ }
+
+ public static EGameSearchErrorCode_t SearchForGameSolo(int nPlayerMin, int nPlayerMax)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamGameSearch_SearchForGameSolo(CSteamAPIContext.GetSteamGameSearch(), nPlayerMin, nPlayerMax);
+ }
+
+ public static EGameSearchErrorCode_t AcceptGame()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamGameSearch_AcceptGame(CSteamAPIContext.GetSteamGameSearch());
+ }
+
+ public static EGameSearchErrorCode_t DeclineGame()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamGameSearch_DeclineGame(CSteamAPIContext.GetSteamGameSearch());
+ }
+
+ public static EGameSearchErrorCode_t RetrieveConnectionDetails(CSteamID steamIDHost, out string pchConnectionDetails, int cubConnectionDetails)
+ {
+ InteropHelp.TestIfAvailableClient();
+ IntPtr intPtr = Marshal.AllocHGlobal(cubConnectionDetails);
+ EGameSearchErrorCode_t eGameSearchErrorCode_t = NativeMethods.ISteamGameSearch_RetrieveConnectionDetails(CSteamAPIContext.GetSteamGameSearch(), steamIDHost, intPtr, cubConnectionDetails);
+ pchConnectionDetails = ((eGameSearchErrorCode_t != 0) ? InteropHelp.PtrToStringUTF8(intPtr) : null);
+ Marshal.FreeHGlobal(intPtr);
+ return eGameSearchErrorCode_t;
+ }
+
+ public static EGameSearchErrorCode_t EndGameSearch()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamGameSearch_EndGameSearch(CSteamAPIContext.GetSteamGameSearch());
+ }
+
+ public static EGameSearchErrorCode_t SetGameHostParams(string pchKey, string pchValue)
+ {
+ InteropHelp.TestIfAvailableClient();
+ using InteropHelp.UTF8StringHandle pchKey2 = new InteropHelp.UTF8StringHandle(pchKey);
+ using InteropHelp.UTF8StringHandle pchValue2 = new InteropHelp.UTF8StringHandle(pchValue);
+ return NativeMethods.ISteamGameSearch_SetGameHostParams(CSteamAPIContext.GetSteamGameSearch(), pchKey2, pchValue2);
+ }
+
+ public static EGameSearchErrorCode_t SetConnectionDetails(string pchConnectionDetails, int cubConnectionDetails)
+ {
+ InteropHelp.TestIfAvailableClient();
+ using InteropHelp.UTF8StringHandle pchConnectionDetails2 = new InteropHelp.UTF8StringHandle(pchConnectionDetails);
+ return NativeMethods.ISteamGameSearch_SetConnectionDetails(CSteamAPIContext.GetSteamGameSearch(), pchConnectionDetails2, cubConnectionDetails);
+ }
+
+ public static EGameSearchErrorCode_t RequestPlayersForGame(int nPlayerMin, int nPlayerMax, int nMaxTeamSize)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamGameSearch_RequestPlayersForGame(CSteamAPIContext.GetSteamGameSearch(), nPlayerMin, nPlayerMax, nMaxTeamSize);
+ }
+
+ public static EGameSearchErrorCode_t HostConfirmGameStart(ulong ullUniqueGameID)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamGameSearch_HostConfirmGameStart(CSteamAPIContext.GetSteamGameSearch(), ullUniqueGameID);
+ }
+
+ public static EGameSearchErrorCode_t CancelRequestPlayersForGame()
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamGameSearch_CancelRequestPlayersForGame(CSteamAPIContext.GetSteamGameSearch());
+ }
+
+ public static EGameSearchErrorCode_t SubmitPlayerResult(ulong ullUniqueGameID, CSteamID steamIDPlayer, EPlayerResult_t EPlayerResult)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamGameSearch_SubmitPlayerResult(CSteamAPIContext.GetSteamGameSearch(), ullUniqueGameID, steamIDPlayer, EPlayerResult);
+ }
+
+ public static EGameSearchErrorCode_t EndGame(ulong ullUniqueGameID)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamGameSearch_EndGame(CSteamAPIContext.GetSteamGameSearch(), ullUniqueGameID);
+ }
+}