summaryrefslogtreecommitdiff
path: root/Assembly_Firstpass/Steamworks/SteamNetworking.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assembly_Firstpass/Steamworks/SteamNetworking.cs')
-rw-r--r--Assembly_Firstpass/Steamworks/SteamNetworking.cs136
1 files changed, 136 insertions, 0 deletions
diff --git a/Assembly_Firstpass/Steamworks/SteamNetworking.cs b/Assembly_Firstpass/Steamworks/SteamNetworking.cs
new file mode 100644
index 0000000..58a7c72
--- /dev/null
+++ b/Assembly_Firstpass/Steamworks/SteamNetworking.cs
@@ -0,0 +1,136 @@
+namespace Steamworks;
+
+public static class SteamNetworking
+{
+ public static bool SendP2PPacket(CSteamID steamIDRemote, byte[] pubData, uint cubData, EP2PSend eP2PSendType, int nChannel = 0)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_SendP2PPacket(CSteamAPIContext.GetSteamNetworking(), steamIDRemote, pubData, cubData, eP2PSendType, nChannel);
+ }
+
+ public static bool IsP2PPacketAvailable(out uint pcubMsgSize, int nChannel = 0)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_IsP2PPacketAvailable(CSteamAPIContext.GetSteamNetworking(), out pcubMsgSize, nChannel);
+ }
+
+ public static bool ReadP2PPacket(byte[] pubDest, uint cubDest, out uint pcubMsgSize, out CSteamID psteamIDRemote, int nChannel = 0)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_ReadP2PPacket(CSteamAPIContext.GetSteamNetworking(), pubDest, cubDest, out pcubMsgSize, out psteamIDRemote, nChannel);
+ }
+
+ public static bool AcceptP2PSessionWithUser(CSteamID steamIDRemote)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_AcceptP2PSessionWithUser(CSteamAPIContext.GetSteamNetworking(), steamIDRemote);
+ }
+
+ public static bool CloseP2PSessionWithUser(CSteamID steamIDRemote)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_CloseP2PSessionWithUser(CSteamAPIContext.GetSteamNetworking(), steamIDRemote);
+ }
+
+ public static bool CloseP2PChannelWithUser(CSteamID steamIDRemote, int nChannel)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_CloseP2PChannelWithUser(CSteamAPIContext.GetSteamNetworking(), steamIDRemote, nChannel);
+ }
+
+ public static bool GetP2PSessionState(CSteamID steamIDRemote, out P2PSessionState_t pConnectionState)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_GetP2PSessionState(CSteamAPIContext.GetSteamNetworking(), steamIDRemote, out pConnectionState);
+ }
+
+ public static bool AllowP2PPacketRelay(bool bAllow)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_AllowP2PPacketRelay(CSteamAPIContext.GetSteamNetworking(), bAllow);
+ }
+
+ public static SNetListenSocket_t CreateListenSocket(int nVirtualP2PPort, SteamIPAddress_t nIP, ushort nPort, bool bAllowUseOfPacketRelay)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return (SNetListenSocket_t)NativeMethods.ISteamNetworking_CreateListenSocket(CSteamAPIContext.GetSteamNetworking(), nVirtualP2PPort, nIP, nPort, bAllowUseOfPacketRelay);
+ }
+
+ public static SNetSocket_t CreateP2PConnectionSocket(CSteamID steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return (SNetSocket_t)NativeMethods.ISteamNetworking_CreateP2PConnectionSocket(CSteamAPIContext.GetSteamNetworking(), steamIDTarget, nVirtualPort, nTimeoutSec, bAllowUseOfPacketRelay);
+ }
+
+ public static SNetSocket_t CreateConnectionSocket(SteamIPAddress_t nIP, ushort nPort, int nTimeoutSec)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return (SNetSocket_t)NativeMethods.ISteamNetworking_CreateConnectionSocket(CSteamAPIContext.GetSteamNetworking(), nIP, nPort, nTimeoutSec);
+ }
+
+ public static bool DestroySocket(SNetSocket_t hSocket, bool bNotifyRemoteEnd)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_DestroySocket(CSteamAPIContext.GetSteamNetworking(), hSocket, bNotifyRemoteEnd);
+ }
+
+ public static bool DestroyListenSocket(SNetListenSocket_t hSocket, bool bNotifyRemoteEnd)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_DestroyListenSocket(CSteamAPIContext.GetSteamNetworking(), hSocket, bNotifyRemoteEnd);
+ }
+
+ public static bool SendDataOnSocket(SNetSocket_t hSocket, byte[] pubData, uint cubData, bool bReliable)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_SendDataOnSocket(CSteamAPIContext.GetSteamNetworking(), hSocket, pubData, cubData, bReliable);
+ }
+
+ public static bool IsDataAvailableOnSocket(SNetSocket_t hSocket, out uint pcubMsgSize)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_IsDataAvailableOnSocket(CSteamAPIContext.GetSteamNetworking(), hSocket, out pcubMsgSize);
+ }
+
+ public static bool RetrieveDataFromSocket(SNetSocket_t hSocket, byte[] pubDest, uint cubDest, out uint pcubMsgSize)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_RetrieveDataFromSocket(CSteamAPIContext.GetSteamNetworking(), hSocket, pubDest, cubDest, out pcubMsgSize);
+ }
+
+ public static bool IsDataAvailable(SNetListenSocket_t hListenSocket, out uint pcubMsgSize, out SNetSocket_t phSocket)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_IsDataAvailable(CSteamAPIContext.GetSteamNetworking(), hListenSocket, out pcubMsgSize, out phSocket);
+ }
+
+ public static bool RetrieveData(SNetListenSocket_t hListenSocket, byte[] pubDest, uint cubDest, out uint pcubMsgSize, out SNetSocket_t phSocket)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_RetrieveData(CSteamAPIContext.GetSteamNetworking(), hListenSocket, pubDest, cubDest, out pcubMsgSize, out phSocket);
+ }
+
+ public static bool GetSocketInfo(SNetSocket_t hSocket, out CSteamID pSteamIDRemote, out int peSocketStatus, out SteamIPAddress_t punIPRemote, out ushort punPortRemote)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_GetSocketInfo(CSteamAPIContext.GetSteamNetworking(), hSocket, out pSteamIDRemote, out peSocketStatus, out punIPRemote, out punPortRemote);
+ }
+
+ public static bool GetListenSocketInfo(SNetListenSocket_t hListenSocket, out SteamIPAddress_t pnIP, out ushort pnPort)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_GetListenSocketInfo(CSteamAPIContext.GetSteamNetworking(), hListenSocket, out pnIP, out pnPort);
+ }
+
+ public static ESNetSocketConnectionType GetSocketConnectionType(SNetSocket_t hSocket)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_GetSocketConnectionType(CSteamAPIContext.GetSteamNetworking(), hSocket);
+ }
+
+ public static int GetMaxPacketSize(SNetSocket_t hSocket)
+ {
+ InteropHelp.TestIfAvailableClient();
+ return NativeMethods.ISteamNetworking_GetMaxPacketSize(CSteamAPIContext.GetSteamNetworking(), hSocket);
+ }
+}