diff options
Diffstat (limited to 'Assembly_Firstpass/Steamworks/SteamParties.cs')
-rw-r--r-- | Assembly_Firstpass/Steamworks/SteamParties.cs | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/Assembly_Firstpass/Steamworks/SteamParties.cs b/Assembly_Firstpass/Steamworks/SteamParties.cs new file mode 100644 index 0000000..13c16cf --- /dev/null +++ b/Assembly_Firstpass/Steamworks/SteamParties.cs @@ -0,0 +1,89 @@ +using System; +using System.Runtime.InteropServices; + +namespace Steamworks; + +public static class SteamParties +{ + public static uint GetNumActiveBeacons() + { + InteropHelp.TestIfAvailableClient(); + return NativeMethods.ISteamParties_GetNumActiveBeacons(CSteamAPIContext.GetSteamParties()); + } + + public static PartyBeaconID_t GetBeaconByIndex(uint unIndex) + { + InteropHelp.TestIfAvailableClient(); + return (PartyBeaconID_t)NativeMethods.ISteamParties_GetBeaconByIndex(CSteamAPIContext.GetSteamParties(), unIndex); + } + + public static bool GetBeaconDetails(PartyBeaconID_t ulBeaconID, out CSteamID pSteamIDBeaconOwner, out SteamPartyBeaconLocation_t pLocation, out string pchMetadata, int cchMetadata) + { + InteropHelp.TestIfAvailableClient(); + IntPtr intPtr = Marshal.AllocHGlobal(cchMetadata); + bool flag = NativeMethods.ISteamParties_GetBeaconDetails(CSteamAPIContext.GetSteamParties(), ulBeaconID, out pSteamIDBeaconOwner, out pLocation, intPtr, cchMetadata); + pchMetadata = (flag ? InteropHelp.PtrToStringUTF8(intPtr) : null); + Marshal.FreeHGlobal(intPtr); + return flag; + } + + public static SteamAPICall_t JoinParty(PartyBeaconID_t ulBeaconID) + { + InteropHelp.TestIfAvailableClient(); + return (SteamAPICall_t)NativeMethods.ISteamParties_JoinParty(CSteamAPIContext.GetSteamParties(), ulBeaconID); + } + + public static bool GetNumAvailableBeaconLocations(out uint puNumLocations) + { + InteropHelp.TestIfAvailableClient(); + return NativeMethods.ISteamParties_GetNumAvailableBeaconLocations(CSteamAPIContext.GetSteamParties(), out puNumLocations); + } + + public static bool GetAvailableBeaconLocations(SteamPartyBeaconLocation_t[] pLocationList, uint uMaxNumLocations) + { + InteropHelp.TestIfAvailableClient(); + return NativeMethods.ISteamParties_GetAvailableBeaconLocations(CSteamAPIContext.GetSteamParties(), pLocationList, uMaxNumLocations); + } + + public static SteamAPICall_t CreateBeacon(uint unOpenSlots, ref SteamPartyBeaconLocation_t pBeaconLocation, string pchConnectString, string pchMetadata) + { + InteropHelp.TestIfAvailableClient(); + using InteropHelp.UTF8StringHandle pchConnectString2 = new InteropHelp.UTF8StringHandle(pchConnectString); + using InteropHelp.UTF8StringHandle pchMetadata2 = new InteropHelp.UTF8StringHandle(pchMetadata); + return (SteamAPICall_t)NativeMethods.ISteamParties_CreateBeacon(CSteamAPIContext.GetSteamParties(), unOpenSlots, ref pBeaconLocation, pchConnectString2, pchMetadata2); + } + + public static void OnReservationCompleted(PartyBeaconID_t ulBeacon, CSteamID steamIDUser) + { + InteropHelp.TestIfAvailableClient(); + NativeMethods.ISteamParties_OnReservationCompleted(CSteamAPIContext.GetSteamParties(), ulBeacon, steamIDUser); + } + + public static void CancelReservation(PartyBeaconID_t ulBeacon, CSteamID steamIDUser) + { + InteropHelp.TestIfAvailableClient(); + NativeMethods.ISteamParties_CancelReservation(CSteamAPIContext.GetSteamParties(), ulBeacon, steamIDUser); + } + + public static SteamAPICall_t ChangeNumOpenSlots(PartyBeaconID_t ulBeacon, uint unOpenSlots) + { + InteropHelp.TestIfAvailableClient(); + return (SteamAPICall_t)NativeMethods.ISteamParties_ChangeNumOpenSlots(CSteamAPIContext.GetSteamParties(), ulBeacon, unOpenSlots); + } + + public static bool DestroyBeacon(PartyBeaconID_t ulBeacon) + { + InteropHelp.TestIfAvailableClient(); + return NativeMethods.ISteamParties_DestroyBeacon(CSteamAPIContext.GetSteamParties(), ulBeacon); + } + + public static bool GetBeaconLocationData(SteamPartyBeaconLocation_t BeaconLocation, ESteamPartyBeaconLocationData eData, out string pchDataStringOut, int cchDataStringOut) + { + InteropHelp.TestIfAvailableClient(); + IntPtr intPtr = Marshal.AllocHGlobal(cchDataStringOut); + bool flag = NativeMethods.ISteamParties_GetBeaconLocationData(CSteamAPIContext.GetSteamParties(), BeaconLocation, eData, intPtr, cchDataStringOut); + pchDataStringOut = (flag ? InteropHelp.PtrToStringUTF8(intPtr) : null); + Marshal.FreeHGlobal(intPtr); + return flag; + } +} |