diff options
359 files changed, 43490 insertions, 31352 deletions
diff --git a/Documents/资料.xlsx b/Documents/资料.xlsx Binary files differindex 83effa6..f620fce 100644 --- a/Documents/资料.xlsx +++ b/Documents/资料.xlsx diff --git a/MultiplayerToolkit/Assets/MultiplayerToolkit/Packet.cs b/MultiplayerToolkit/Assets/MultiplayerToolkit/Packet.cs new file mode 100644 index 0000000..5048a6a --- /dev/null +++ b/MultiplayerToolkit/Assets/MultiplayerToolkit/Packet.cs @@ -0,0 +1,297 @@ +using System; +using System.Collections.Generic; +using System.Text; +using UnityEngine; + +public class Packet : IDisposable +{ + private List<byte> buffer; + private byte[] readableBuffer; + private int readPos; + private bool disposed; + + public Packet() + { + this.buffer = new List<byte>(); + this.readPos = 0; + } + + /// <summary> + /// ͷдһintΪID + /// </summary> + /// <param name="_id"></param> + public Packet(int _id) + { + this.buffer = new List<byte>(); + this.readPos = 0; + this.Write(_id); + } + + public Packet(byte[] _data) + { + this.buffer = new List<byte>(); + this.readPos = 0; + this.SetBytes(_data); + } + + public void SetBytes(byte[] _data) + { + this.Write(_data); + this.readableBuffer = this.buffer.ToArray(); + } + + /// <summary> + /// ͷдһintΪǰbuffer + /// </summary> + public void InsertLength() + { + this.buffer.InsertRange(0, BitConverter.GetBytes(this.buffer.Count)); + } + + /// <summary> + /// ͷдһint + /// </summary> + /// <param name="_value"></param> + public void InsertInt(int _value) + { + this.buffer.InsertRange(0, BitConverter.GetBytes(_value)); + } + + public byte[] ToArray() + { + this.readableBuffer = this.buffer.ToArray(); + return this.readableBuffer; + } + + public int Length() + { + return this.buffer.Count; + } + + public int UnreadLength() + { + return this.Length() - this.readPos; + } + + public void Reset(bool _shouldReset = true) + { + if (_shouldReset) + { + this.buffer.Clear(); + this.readableBuffer = null; + this.readPos = 0; + return; + } + this.readPos -= 4; + } + + public void Write(byte _value) + { + this.buffer.Add(_value); + } + + public void Write(byte[] _value) + { + this.buffer.AddRange(_value); + } + + public void Write(short _value) + { + this.buffer.AddRange(BitConverter.GetBytes(_value)); + } + + public void Write(int _value) + { + this.buffer.AddRange(BitConverter.GetBytes(_value)); + } + + public void Write(long _value) + { + this.buffer.AddRange(BitConverter.GetBytes(_value)); + } + + public void Write(float _value) + { + this.buffer.AddRange(BitConverter.GetBytes(_value)); + } + + public void Write(bool _value) + { + this.buffer.AddRange(BitConverter.GetBytes(_value)); + } + + public void Write(string _value) + { + this.Write(_value.Length); + this.buffer.AddRange(Encoding.ASCII.GetBytes(_value)); + } + + public void Write(Vector3 _value) + { + this.Write(_value.x); + this.Write(_value.y); + this.Write(_value.z); + } + + public void Write(Quaternion _value) + { + this.Write(_value.x); + this.Write(_value.y); + this.Write(_value.z); + this.Write(_value.w); + } + + public byte ReadByte(bool _moveReadPos = true) + { + if (this.buffer.Count > this.readPos) + { + byte arg_31_0 = this.readableBuffer[this.readPos]; + if (_moveReadPos) + { + this.readPos++; + } + return arg_31_0; + } + throw new Exception("Could not read value of type 'byte'!"); + } + + public byte[] ReadBytes(int _length, bool _moveReadPos = true) + { + if (this.buffer.Count > this.readPos) + { + byte[] arg_3B_0 = this.buffer.GetRange(this.readPos, _length).ToArray(); + if (_moveReadPos) + { + this.readPos += _length; + } + return arg_3B_0; + } + throw new Exception("Could not read value of type 'byte[]'!"); + } + + public byte[] CloneBytes() + { + return this.buffer.ToArray(); + } + + public short ReadShort(bool _moveReadPos = true) + { + if (this.buffer.Count > this.readPos) + { + short arg_35_0 = BitConverter.ToInt16(this.readableBuffer, this.readPos); + if (_moveReadPos) + { + this.readPos += 2; + } + return arg_35_0; + } + throw new Exception("Could not read value of type 'short'!"); + } + + public int ReadInt(bool _moveReadPos = true) + { + if (this.buffer.Count > this.readPos) + { + int arg_35_0 = BitConverter.ToInt32(this.readableBuffer, this.readPos); + if (_moveReadPos) + { + this.readPos += 4; + } + return arg_35_0; + } + throw new Exception("Could not read value of type 'int'!"); + } + + public long ReadLong(bool _moveReadPos = true) + { + if (this.buffer.Count > this.readPos) + { + long arg_35_0 = BitConverter.ToInt64(this.readableBuffer, this.readPos); + if (_moveReadPos) + { + this.readPos += 8; + } + return arg_35_0; + } + throw new Exception("Could not read value of type 'long'!"); + } + + public float ReadFloat(bool _moveReadPos = true) + { + if (this.buffer.Count > this.readPos) + { + float arg_35_0 = BitConverter.ToSingle(this.readableBuffer, this.readPos); + if (_moveReadPos) + { + this.readPos += 4; + } + return arg_35_0; + } + throw new Exception("Could not read value of type 'float'!"); + } + + public bool ReadBool(bool _moveReadPos = true) + { + if (this.buffer.Count > this.readPos) + { + bool arg_35_0 = BitConverter.ToBoolean(this.readableBuffer, this.readPos); + if (_moveReadPos) + { + this.readPos++; + } + return arg_35_0; + } + throw new Exception("Could not read value of type 'bool'!"); + } + + public string ReadString(bool _moveReadPos = true) + { + string result; + try + { + int num = this.ReadInt(true); + string @string = Encoding.ASCII.GetString(this.readableBuffer, this.readPos, num); + if (_moveReadPos && @string.Length > 0) + { + this.readPos += num; + } + result = @string; + } + catch (Exception e) + { + throw new Exception("Could not read value of type 'string'!"); + } + return result; + } + + public Vector3 ReadVector3(bool moveReadPos = true) + { + return new Vector3(this.ReadFloat(moveReadPos), this.ReadFloat(moveReadPos), this.ReadFloat(moveReadPos)); + } + + public Quaternion ReadQuaternion(bool moveReadPos = true) + { + return new Quaternion(this.ReadFloat(moveReadPos), this.ReadFloat(moveReadPos), this.ReadFloat(moveReadPos), this.ReadFloat(moveReadPos)); + } + + protected virtual void Dispose(bool _disposing) + { + if (!this.disposed) + { + if (_disposing) + { + this.buffer = null; + this.readableBuffer = null; + this.readPos = 0; + } + this.disposed = true; + } + } + + public void Dispose() + { + this.Dispose(true); + GC.SuppressFinalize(this); + } + +} diff --git a/MultiplayerToolkit/Assets/SteamTest.cs.meta b/MultiplayerToolkit/Assets/MultiplayerToolkit/Packet.cs.meta index a380a86..0201775 100644 --- a/MultiplayerToolkit/Assets/SteamTest.cs.meta +++ b/MultiplayerToolkit/Assets/MultiplayerToolkit/Packet.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6bb67c01172a2044ca5a602bb5b8534b +guid: 0befe5905310f0b47a1f3d71a4673f7d MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/MultiplayerToolkit/Assets/MultiplayerToolkit/SteamPacketManager.cs b/MultiplayerToolkit/Assets/MultiplayerToolkit/SteamPacketManager.cs new file mode 100644 index 0000000..41207fc --- /dev/null +++ b/MultiplayerToolkit/Assets/MultiplayerToolkit/SteamPacketManager.cs @@ -0,0 +1,109 @@ +//using Steamworks; +//using Steamworks.Data; +//using System; +//using System.Collections.Generic; +//using UnityEngine; +//public class SteamPacketManager : MonoBehaviour +//{ +// public enum NetworkChannel +// { +// ToClient, +// ToServer +// } +// private void Start() +// { +// UnityEngine.Object.DontDestroyOnLoad(base.gameObject); +// Server.InitializeServerPackets(); +// LocalClient.InitializeClientData(); +// } +// private void Update() +// { +// SteamClient.RunCallbacks(); +// this.CheckForPackets(); +// } +// private void CheckForPackets() +// { +// for (int i = 0; i < 2; i++) +// { +// if (SteamNetworking.IsP2PPacketAvailable(i)) +// { +// while (SteamNetworking.IsP2PPacketAvailable(i)) +// { +// SteamPacketManager.HandlePacket(SteamNetworking.ReadP2PPacket(i), i); +// } +// } +// } +// } +// private static void HandlePacket(P2Packet? p2Packet, int channel) +// { +// if (!p2Packet.HasValue) +// { +// return; +// } +// SteamId steamId = p2Packet.Value.SteamId.Value; +// byte[] data = p2Packet.Value.Data; +// if (!LocalClient.serverOwner && steamId.Value != LocalClient.instance.serverHost.Value) +// { +// Debug.LogError("Received packet from someone other than server: " + new Friend(steamId).Name + "\nDenying packet..."); +// return; +// } +// Packet packet = new Packet(); +// packet.SetBytes(data); +// int arg_8E_0 = packet.Length(); +// int num = packet.ReadInt(true); +// if (arg_8E_0 != num + 4) +// { +// Debug.LogError("didnt read entire packet"); +// } +// int key = packet.ReadInt(true); +// if (channel != 0) +// { +// Server.PacketHandlers[key](SteamLobby.steamIdToClientId[steamId.Value], packet); +// return; +// } +// if (steamId.Value != LocalClient.instance.serverHost.Value) +// { +// return; +// } +// LocalClient.packetHandlers[key](packet); +// } +// public static void SendPacket(SteamId steamId, Packet p, P2PSend p2pSend, SteamPacketManager.NetworkChannel channel) +// { +// int length = p.Length(); +// byte[] data = p.CloneBytes(); +// new Packet(data); +// if (steamId.Value != SteamManager.Instance.PlayerSteamId.Value) +// { +// SteamNetworking.SendP2PPacket(steamId.Value, data, length, (int)channel, p2pSend); +// return; +// } +// SteamPacketManager.HandlePacket(new P2Packet?(new P2Packet +// { +// SteamId = steamId.Value, +// Data = data +// }), (int)channel); +// } +// private void OnApplicationQuit() +// { +// SteamPacketManager.CloseConnections(); +// } +// public static void CloseConnections() +// { +// using (Dictionary<ulong, int>.KeyCollection.Enumerator enumerator = SteamLobby.steamIdToClientId.Keys.GetEnumerator()) +// { +// while (enumerator.MoveNext()) +// { +// SteamNetworking.CloseP2PSessionWithUser(enumerator.Current); +// } +// } +// try +// { +// SteamNetworking.CloseP2PSessionWithUser(LocalClient.instance.serverHost); +// } +// catch (object) +// { +// Debug.Log("Failed to close p2p with host"); +// } +// SteamClient.Shutdown(); +// } +//} diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/RedistCopy.cs.meta b/MultiplayerToolkit/Assets/MultiplayerToolkit/SteamPacketManager.cs.meta index 905837f..065d4db 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/RedistCopy.cs.meta +++ b/MultiplayerToolkit/Assets/MultiplayerToolkit/SteamPacketManager.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 96dd4cffb1a008c4e8d429c9f4186034 +guid: f32a87e3e9982a44b92576e9df2ef339 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/MultiplayerToolkit/Assets/Scenes/SampleScene.unity b/MultiplayerToolkit/Assets/Scenes/SampleScene.unity index 210cf98..f2a285a 100644 --- a/MultiplayerToolkit/Assets/Scenes/SampleScene.unity +++ b/MultiplayerToolkit/Assets/Scenes/SampleScene.unity @@ -123,50 +123,6 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &203100391 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 203100394} - - component: {fileID: 203100393} - m_Layer: 0 - m_Name: GameObject - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &203100393 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 203100391} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6bb67c01172a2044ca5a602bb5b8534b, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!4 &203100394 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 203100391} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.640996, y: 3.379696, z: -4.9766397} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &330585543 GameObject: m_ObjectHideFlags: 0 @@ -458,7 +414,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1959219718} - - component: {fileID: 1959219717} + - component: {fileID: 1959219719} m_Layer: 0 m_Name: GameObject (1) m_TagString: Untagged @@ -466,18 +422,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1959219717 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1959219716} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ef4bffeda13d7a748973ff9204401c07, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!4 &1959219718 Transform: m_ObjectHideFlags: 0 @@ -493,3 +437,15 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1959219719 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1959219716} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c41de0be934d7c8459e4f5bdd7c6f2c1, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/MultiplayerToolkit/Assets/Scripts.meta b/MultiplayerToolkit/Assets/Scripts.meta deleted file mode 100644 index 2ffabd6..0000000 --- a/MultiplayerToolkit/Assets/Scripts.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: c842633c5b5d85447b5b01d3847400db -folderAsset: yes -DefaultImporter: - userData: diff --git a/MultiplayerToolkit/Assets/Scripts/Steamworks.NET.meta b/MultiplayerToolkit/Assets/Scripts/Steamworks.NET.meta deleted file mode 100644 index bbf13f6..0000000 --- a/MultiplayerToolkit/Assets/Scripts/Steamworks.NET.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: 62ddefd95a62cbc4ea1a2aabc009a378 -folderAsset: yes -DefaultImporter: - userData: diff --git a/MultiplayerToolkit/Assets/Scripts/Steamworks.NET/SteamManager.cs b/MultiplayerToolkit/Assets/Scripts/Steamworks.NET/SteamManager.cs deleted file mode 100644 index 63930c1..0000000 --- a/MultiplayerToolkit/Assets/Scripts/Steamworks.NET/SteamManager.cs +++ /dev/null @@ -1,182 +0,0 @@ -// The SteamManager is designed to work with Steamworks.NET -// This file is released into the public domain. -// Where that dedication is not recognized you are granted a perpetual, -// irrevocable license to copy and modify this file as you see fit. -// -// Version: 1.0.13 - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) -#define DISABLESTEAMWORKS -#endif - -using UnityEngine; -#if !DISABLESTEAMWORKS -using System.Collections; -using Steamworks; -#endif - -// -// The SteamManager provides a base implementation of Steamworks.NET on which you can build upon. -// It handles the basics of starting up and shutting down the SteamAPI for use. -// -[DisallowMultipleComponent] -public class SteamManager : MonoBehaviour { -#if !DISABLESTEAMWORKS - protected static bool s_EverInitialized = false; - - protected static SteamManager s_instance; - protected static SteamManager Instance { - get { - if (s_instance == null) { - return new GameObject("SteamManager").AddComponent<SteamManager>(); - } - else { - return s_instance; - } - } - } - - protected bool m_bInitialized = false; - public static bool Initialized { - get { - return Instance.m_bInitialized; - } - } - - protected SteamAPIWarningMessageHook_t m_SteamAPIWarningMessageHook; - - [AOT.MonoPInvokeCallback(typeof(SteamAPIWarningMessageHook_t))] - protected static void SteamAPIDebugTextHook(int nSeverity, System.Text.StringBuilder pchDebugText) { - Debug.LogWarning(pchDebugText); - } - -#if UNITY_2019_3_OR_NEWER - // In case of disabled Domain Reload, reset static members before entering Play Mode. - [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] - private static void InitOnPlayMode() - { - s_EverInitialized = false; - s_instance = null; - } -#endif - - protected virtual void Awake() { - // Only one instance of SteamManager at a time! - if (s_instance != null) { - Destroy(gameObject); - return; - } - s_instance = this; - - if(s_EverInitialized) { - // This is almost always an error. - // The most common case where this happens is when SteamManager gets destroyed because of Application.Quit(), - // and then some Steamworks code in some other OnDestroy gets called afterwards, creating a new SteamManager. - // You should never call Steamworks functions in OnDestroy, always prefer OnDisable if possible. - throw new System.Exception("Tried to Initialize the SteamAPI twice in one session!"); - } - - // We want our SteamManager Instance to persist across scenes. - DontDestroyOnLoad(gameObject); - - if (!Packsize.Test()) { - Debug.LogError("[Steamworks.NET] Packsize Test returned false, the wrong version of Steamworks.NET is being run in this platform.", this); - } - - if (!DllCheck.Test()) { - Debug.LogError("[Steamworks.NET] DllCheck Test returned false, One or more of the Steamworks binaries seems to be the wrong version.", this); - } - - try { - // If Steam is not running or the game wasn't started through Steam, SteamAPI_RestartAppIfNecessary starts the - // Steam client and also launches this game again if the User owns it. This can act as a rudimentary form of DRM. - // Note that this will run which ever version you have installed in steam. Which may not be the precise executable - // we were currently running. - - // Once you get a Steam AppID assigned by Valve, you need to replace AppId_t.Invalid with it and - // remove steam_appid.txt from the game depot. eg: "(AppId_t)480" or "new AppId_t(480)". - // See the Valve documentation for more information: https://partner.steamgames.com/doc/sdk/api#initialization_and_shutdown - if (SteamAPI.RestartAppIfNecessary(AppId_t.Invalid)) { - Debug.Log("[Steamworks.NET] Shutting down because RestartAppIfNecessary returned true. Steam will restart the application."); - - Application.Quit(); - return; - } - } - catch (System.DllNotFoundException e) { // We catch this exception here, as it will be the first occurrence of it. - Debug.LogError("[Steamworks.NET] Could not load [lib]steam_api.dll/so/dylib. It's likely not in the correct location. Refer to the README for more details.\n" + e, this); - - Application.Quit(); - return; - } - - // Initializes the Steamworks API. - // If this returns false then this indicates one of the following conditions: - // [*] The Steam client isn't running. A running Steam client is required to provide implementations of the various Steamworks interfaces. - // [*] The Steam client couldn't determine the App ID of game. If you're running your application from the executable or debugger directly then you must have a [code-inline]steam_appid.txt[/code-inline] in your game directory next to the executable, with your app ID in it and nothing else. Steam will look for this file in the current working directory. If you are running your executable from a different directory you may need to relocate the [code-inline]steam_appid.txt[/code-inline] file. - // [*] Your application is not running under the same OS user context as the Steam client, such as a different user or administration access level. - // [*] Ensure that you own a license for the App ID on the currently active Steam account. Your game must show up in your Steam library. - // [*] Your App ID is not completely set up, i.e. in Release State: Unavailable, or it's missing default packages. - // Valve's documentation for this is located here: - // https://partner.steamgames.com/doc/sdk/api#initialization_and_shutdown - m_bInitialized = SteamAPI.Init(); - if (!m_bInitialized) { - Debug.LogError("[Steamworks.NET] SteamAPI_Init() failed. Refer to Valve's documentation or the comment above this line for more information.", this); - - return; - } - - s_EverInitialized = true; - } - - // This should only ever get called on first load and after an Assembly reload, You should never Disable the Steamworks Manager yourself. - protected virtual void OnEnable() { - if (s_instance == null) { - s_instance = this; - } - - if (!m_bInitialized) { - return; - } - - if (m_SteamAPIWarningMessageHook == null) { - // Set up our callback to receive warning messages from Steam. - // You must launch with "-debug_steamapi" in the launch args to receive warnings. - m_SteamAPIWarningMessageHook = new SteamAPIWarningMessageHook_t(SteamAPIDebugTextHook); - SteamClient.SetWarningMessageHook(m_SteamAPIWarningMessageHook); - } - } - - // OnApplicationQuit gets called too early to shutdown the SteamAPI. - // Because the SteamManager should be persistent and never disabled or destroyed we can shutdown the SteamAPI here. - // Thus it is not recommended to perform any Steamworks work in other OnDestroy functions as the order of execution can not be garenteed upon Shutdown. Prefer OnDisable(). - protected virtual void OnDestroy() { - if (s_instance != this) { - return; - } - - s_instance = null; - - if (!m_bInitialized) { - return; - } - - SteamAPI.Shutdown(); - } - - protected virtual void Update() { - if (!m_bInitialized) { - return; - } - - // Run Steam client callbacks - SteamAPI.RunCallbacks(); - } -#else - public static bool Initialized { - get { - return false; - } - } -#endif // !DISABLESTEAMWORKS -} diff --git a/MultiplayerToolkit/Assets/Scripts/Steamworks.NET/SteamManager.cs.meta b/MultiplayerToolkit/Assets/Scripts/Steamworks.NET/SteamManager.cs.meta deleted file mode 100644 index 9281178..0000000 --- a/MultiplayerToolkit/Assets/Scripts/Steamworks.NET/SteamManager.cs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ef4bffeda13d7a748973ff9204401c07 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: diff --git a/MultiplayerToolkit/Assets/SteamTest.cs b/MultiplayerToolkit/Assets/Test.cs index cc8995f..ab62ac3 100644 --- a/MultiplayerToolkit/Assets/SteamTest.cs +++ b/MultiplayerToolkit/Assets/Test.cs @@ -3,7 +3,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; -public class SteamTest : MonoBehaviour +public class Test : MonoBehaviour { #region 序列化 @@ -20,23 +20,18 @@ public class SteamTest : MonoBehaviour private void Awake() { // 私有字段赋值 - + // 公共字段赋值 - + // 初始化 - - - } private void Start() { - - string name = SteamFriends.GetPersonaName(); - - - Debug.Log(name); - + SteamClient.Init(2629400); + Debug.Log(SteamClient.Name); + Debug.Log(SteamClient.SteamId); + Debug.Log(SteamClient.AppId); } } diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/RedistInstall.cs.meta b/MultiplayerToolkit/Assets/Test.cs.meta index 1becd9f..d78b33d 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/RedistInstall.cs.meta +++ b/MultiplayerToolkit/Assets/Test.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7a716febd50f03244b98d9a5a0c6b36f +guid: c41de0be934d7c8459e4f5bdd7c6f2c1 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor.meta b/MultiplayerToolkit/Assets/ThirdParty.meta index 68854c4..f133537 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor.meta +++ b/MultiplayerToolkit/Assets/ThirdParty.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e621350345100524c9fa97c4bc4716a7 +guid: a773824776c7a824283a48a6b3c5c697 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch.meta index ce4bfc8..3b165d0 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins.meta +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a5651469b1f07af4694f149e4b02cb30 +guid: 9994008dfd5ba4f4aa052f2d4f28580b folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.dll b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.dll Binary files differnew file mode 100644 index 0000000..6901913 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.dll diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.dll.meta index 71ab7fb..1e31fb9 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle.meta +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.dll.meta @@ -1,6 +1,5 @@ fileFormatVersion: 2 -guid: 0b376df920bc50246801677e7b167d14 -folderAsset: yes +guid: fc89a528dd38bd04a90af929e9c0f80e PluginImporter: externalObjects: {} serializedVersion: 2 @@ -8,19 +7,18 @@ PluginImporter: executionOrder: {} defineConstraints: [] isPreloaded: 0 - isOverridable: 1 + isOverridable: 0 isExplicitlyReferenced: 0 validateReferences: 1 platformData: - first: - : Any + '': Any second: enabled: 0 settings: Exclude Editor: 0 - Exclude Linux64: 1 + Exclude Linux64: 0 Exclude OSXUniversal: 0 - Exclude WebGL: 1 Exclude Win: 1 Exclude Win64: 1 - first: @@ -37,12 +35,24 @@ PluginImporter: DefaultValueInitialized: true OS: OSX - first: - Standalone: Linux64 + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 second: enabled: 0 settings: CPU: None - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: Standalone: OSXUniversal second: enabled: 1 @@ -53,13 +63,19 @@ PluginImporter: second: enabled: 0 settings: - CPU: x86 + CPU: None - first: Standalone: Win64 second: enabled: 0 settings: - CPU: x86_64 + CPU: None + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU userData: assetBundleName: assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.pdb b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.pdb Binary files differnew file mode 100644 index 0000000..4590cb5 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.pdb diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/Info.plist.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.pdb.meta index 8fb8f59..38f5017 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/Info.plist.meta +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.pdb.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 471cce660e3c5e74194241e0d00ce331 +guid: 70840efe0f145064cbb0b568f11d7ff5 DefaultImporter: externalObjects: {} userData: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.xml b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.xml new file mode 100644 index 0000000..414ee29 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.xml @@ -0,0 +1,3474 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Facepunch.Steamworks.Posix</name> + </assembly> + <members> + <member name="T:Steamworks.CallResult`1"> + <summary> + An awaitable version of a SteamAPICall_t + </summary> + </member> + <member name="M:Steamworks.CallResult`1.OnCompleted(System.Action)"> + <summary> + This gets called if IsComplete returned false on the first call. + The Action "continues" the async call. We pass it to the Dispatch + to be called when the callback returns. + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetResult"> + <summary> + Gets the result. This is called internally by the async shit. + </summary> + </member> + <member name="P:Steamworks.CallResult`1.IsCompleted"> + <summary> + Return true if complete or failed + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetAwaiter"> + <summary> + This is what makes this struct awaitable + </summary> + </member> + <member name="T:Steamworks.ICallbackData"> + <summary> + Gives us a generic way to get the CallbackId of structs + </summary> + </member> + <member name="M:Steamworks.AuthTicket.Cancel"> + <summary> + Cancels a ticket. + You should cancel your ticket when you close the game or leave a server. + </summary> + </member> + <member name="T:Steamworks.Dispatch"> + <summary> + Responsible for all callback/callresult handling + + This manually pumps Steam's message queue and dispatches those + events to any waiting callbacks/callresults. + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnDebugCallback"> + <summary> + If set then we'll call this function every time a callback is generated. + + This is SLOW!! - it's for debugging - don't keep it on all the time. If you want to access a specific + callback then please create an issue on github and I'll add it! + + Params are : [Callback Type] [Callback Contents] [server] + + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnException"> + <summary> + Called if an exception happens during a callback/callresult. + This is needed because the exception isn't always accessible when running + async.. and can fail silently. With this hooked you won't be stuck wondering + what happened. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Init"> + <summary> + This gets called from Client/Server Init + It's important to switch to the manual dispatcher + </summary> + </member> + <member name="F:Steamworks.Dispatch.runningFrame"> + <summary> + Make sure we don't call Frame in a callback - because that'll cause some issues for everyone. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Frame(Steamworks.Data.HSteamPipe)"> + <summary> + Calls RunFrame and processes events from this Steam Pipe + </summary> + </member> + <member name="F:Steamworks.Dispatch.actionsToCall"> + <summary> + To be safe we don't call the continuation functions while iterating + the Callback list. This is maybe overly safe because the only way this + could be an issue is if the callback list is modified in the continuation + which would only happen if starting or shutting down in the callback. + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessCallback(Steamworks.Dispatch.CallbackMsg_t,System.Boolean)"> + <summary> + A callback is a general global message + </summary> + </member> + <member name="M:Steamworks.Dispatch.CallbackToString(Steamworks.CallbackType,System.IntPtr,System.Int32)"> + <summary> + Given a callback, try to turn it into a string + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessResult(Steamworks.Dispatch.CallbackMsg_t)"> + <summary> + A result is a reply to a specific command + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopClientAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopServerAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.OnCallComplete``1(Steamworks.Data.SteamAPICall_t,System.Action,System.Boolean)"> + <summary> + Watch for a steam api call + </summary> + </member> + <member name="M:Steamworks.Dispatch.Install``1(System.Action{``0},System.Boolean)"> + <summary> + Install a global callback. The passed function will get called if it's all good. + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.Numeric"> + <summary> + The score is just a simple numerical value + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeSeconds"> + <summary> + The score represents a time, in seconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeMilliSeconds"> + <summary> + The score represents a time, in milliseconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Ascending"> + <summary> + The top-score is the lowest number + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Descending"> + <summary> + The top-score is the highest number + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Unreliable"> + <summary> + Send the message unreliably. Can be lost. Messages *can* be larger than a + single MTU (UDP packet), but there is no retransmission, so if any piece + of the message is lost, the entire message will be dropped. + + The sending API does have some knowledge of the underlying connection, so + if there is no NAT-traversal accomplished or there is a recognized adjustment + happening on the connection, the packet will be batched until the connection + is open again. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoNagle"> + <summary> + Disable Nagle's algorithm. + By default, Nagle's algorithm is applied to all outbound messages. This means + that the message will NOT be sent immediately, in case further messages are + sent soon after you send this, which can be grouped together. Any time there + is enough buffered data to fill a packet, the packets will be pushed out immediately, + but partially-full packets not be sent until the Nagle timer expires. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoDelay"> + <summary> + If the message cannot be sent very soon (because the connection is still doing some initial + handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable + messages. Using this flag on reliable messages is invalid. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Reliable"> + Reliable message send. Can send up to 0.5mb in a single message. + Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for + efficient sends of large chunks of data. + </member> + <member name="P:Steamworks.Data.NetIdentity.LocalHost"> + <summary> + Return a NetIdentity that represents LocalHost + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.IsLocalHost"> + <summary> + Return true if this identity is localhost + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.SteamId)~Steamworks.Data.NetIdentity"> + <summary> + Convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetAddress)~Steamworks.Data.NetIdentity"> + <summary> + Set the specified Address + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetIdentity)~Steamworks.SteamId"> + <summary> + Automatically convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="P:Steamworks.Data.NetIdentity.SteamId"> + <summary> + Returns NULL if we're not a SteamId + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.Address"> + <summary> + Returns NULL if we're not a NetAddress + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.ToString"> + <summary> + We override tostring to provide a sensible representation + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Port"> + <summary> + The Port. This is redundant documentation. + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.AnyIp(System.UInt16)"> + <summary> + Any IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.LocalHost(System.UInt16)"> + <summary> + Localhost IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.String,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.Net.IPAddress,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Cleared"> + <summary> + Set everything to zero + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv6AllZeros"> + <summary> + Return true if the IP is ::0. (Doesn't check port.) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv4"> + <summary> + Return true if IP is mapped IPv4 + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsLocalHost"> + <summary> + Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Address"> + <summary> + Get the Address section + </summary> + </member> + <member name="T:Steamworks.Data.Connection"> + <summary> + Used as a base to create your client connection. This creates a socket + to a single connection. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Accept"> + <summary> + Accept an incoming connection that has been received on a listen socket. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Close(System.Boolean,System.Int32,System.String)"> + <summary> + Disconnects from the remote host and invalidates the connection handle. Any unread data on the connection is discarded.. + reasonCode is defined and used by you. + </summary> + </member> + <member name="P:Steamworks.Data.Connection.UserData"> + <summary> + Get/Set connection user data + </summary> + </member> + <member name="P:Steamworks.Data.Connection.ConnectionName"> + <summary> + A name for the connection, used mostly for debugging + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.IntPtr,System.Int32,Steamworks.Data.SendType)"> + <summary> + This is the best version to use. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],System.Int32,System.Int32,Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.String,Steamworks.Data.SendType)"> + <summary> + This creates a ton of garbage - so don't do anything with this beyond testing! + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Flush"> + <summary> + Flush any messages waiting on the Nagle timer and send them at the next transmission + opportunity (often that means right now). + </summary> + </member> + <member name="M:Steamworks.Data.Connection.DetailedStatus"> + <summary> + Returns detailed connection stats in text format. Useful + for dumping to a log, etc. + </summary> + <returns>Plain text connection info</returns> + </member> + <member name="T:Steamworks.Data.ConnectionInfo"> + <summary> + Describe the state of a connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.State"> + <summary> + High level state of the connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Address"> + <summary> + Remote address. Might be all 0's if we don't know it, or if this is N/A. + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Identity"> + <summary> + Who is on the other end? Depending on the connection type and phase of the connection, we might not know + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.EndReason"> + <summary> + Basic cause of the connection termination or problem. + </summary> + </member> + <member name="T:Steamworks.Data.NetPingLocation"> + <summary> + + Object that describes a "location" on the Internet with sufficient + detail that we can reasonably estimate an upper bound on the ping between + the two hosts, even if a direct route between the hosts is not possible, + and the connection must be routed through the Steam Datagram Relay network. + This does not contain any information that identifies the host. Indeed, + if two hosts are in the same building or otherwise have nearly identical + networking characteristics, then it's valid to use the same location + object for both of them. + + NOTE: This object should only be used in the same process! Do not serialize it, + send it over the wire, or persist it in a file or database! If you need + to do that, convert it to a string representation using the methods in + ISteamNetworkingUtils(). + + </summary> + </member> + <member name="M:Steamworks.Data.NetPingLocation.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + Estimate the round-trip latency between two arbitrary locations, in + milliseconds. This is a conservative estimate, based on routing through + the relay network. For most basic relayed connections, this ping time + will be pretty accurate, since it will be based on the route likely to + be actually used. + + If a direct IP route is used (perhaps via NAT traversal), then the route + will be different, and the ping time might be better. Or it might actually + be a bit worse! Standard IP routing is frequently suboptimal! + + But even in this case, the estimate obtained using this method is a + reasonable upper bound on the ping time. (Also it has the advantage + of returning immediately and not sending any packets.) + + In a few cases we might not able to estimate the route. In this case + a negative value is returned. k_nSteamNetworkingPing_Failed means + the reason was because of some networking difficulty. (Failure to + ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + currently answer the question for some other reason. + + Do you need to be able to do this from a backend/matchmaking server? + You are looking for the "ticketgen" library. + </member> + <member name="M:Steamworks.Data.Socket.Close"> + <summary> + Destroy a listen socket. All the connections that were accepting on the listen + socket are closed ungracefully. + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.State"> + <summary> + True if unlocked + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.UnlockTime"> + <summary> + Should hold the unlock time if State is true + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIcon"> + <summary> + Gets the icon of the achievement. This can return a null image even though the image exists if the image + hasn't been downloaded by Steam yet. You can use GetIconAsync if you want to wait for the image to be downloaded. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIconAsync(System.Int32)"> + <summary> + Gets the icon of the achievement, waits for it to load if we have to + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.GlobalUnlocked"> + <summary> + Returns the fraction (0-1) of users who have unlocked the specified achievement, or -1 if no data available. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Trigger(System.Boolean)"> + <summary> + Make this achievement earned + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Clear"> + <summary> + Reset this achievement to not achieved + </summary> + </member> + <member name="T:Steamworks.Data.DurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Appid"> + <summary> + appid generating playtime + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Applicable"> + <summary> + is duration control applicable to user + game combination + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeInLastFiveHours"> + <summary> + playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeToday"> + <summary> + playtime on current calendar day + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Progress"> + <summary> + recommended progress + </summary> + </member> + <member name="P:Steamworks.Data.Leaderboard.Name"> + <summary> + the name of a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.ReplaceScore(System.Int32,System.Int32[])"> + <summary> + Submit your score and replace your old score even if it was better + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.SubmitScoreAsync(System.Int32,System.Int32[])"> + <summary> + Submit your new score, but won't replace your high score if it's lower + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.AttachUgc(Steamworks.Data.Ugc)"> + <summary> + Attaches a piece of user generated content the user's entry on a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAsync(System.Int32,System.Int32)"> + <summary> + Used to query for a sequential range of leaderboard entries by leaderboard Sort. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAroundUserAsync(System.Int32,System.Int32)"> + <summary> + Used to retrieve leaderboard entries relative a user's entry. If there are not enough entries in the leaderboard + before or after the user's entry, Steam will adjust the range to try to return the number of entries requested. + For example, if the user is #1 on the leaderboard and start is set to -2, end is set to 2, Steam will return the first + 5 entries in the leaderboard. If The current user has no entry, this will return null. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresFromFriendsAsync"> + <summary> + Used to retrieve all leaderboard entries for friends of the current user + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Join"> + <summary> + Try to join this room. Will return RoomEnter.Success on success, + and anything else is a failure + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Leave"> + <summary> + Leave a lobby; this will take effect immediately on the client side + other users in the lobby will be notified by a LobbyChatUpdate_t callback + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.InviteFriend(Steamworks.SteamId)"> + <summary> + Invite another user to the lobby + will return true if the invite is successfully sent, whether or not the target responds + returns false if the local user is not connected to the Steam servers + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MemberCount"> + <summary> + returns the number of users in the specified lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Members"> + <summary> + Returns current members. Need to be in the lobby to see the users. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetData(System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetData(System.String,System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.DeleteData(System.String)"> + <summary> + Removes a metadata key from the lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Data"> + <summary> + Get all data for this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetMemberData(Steamworks.Friend,System.String)"> + <summary> + Gets per-user metadata for someone in this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetMemberData(System.String,System.String)"> + <summary> + Sets per-user metadata (for the local user implicitly) + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatString(System.String)"> + <summary> + Sends a string to the chat room + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatBytes(System.Byte[])"> + <summary> + Sends bytes the the chat room + this isn't exposed because there's no way to read raw bytes atm, + and I figure people can send json if they want something more advanced + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Refresh"> + <summary> + Refreshes metadata for a lobby you're not necessarily in right now + you never do this for lobbies you're a member of, only if your + this will send down all the metadata associated with a lobby + this is an asynchronous call + returns false if the local user is not connected to the Steam servers + results will be returned by a LobbyDataUpdate_t callback + if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MaxMembers"> + <summary> + Max members able to join this lobby. Cannot be over 250. + Can only be set by the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(Steamworks.SteamId)"> + <summary> + [SteamID variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(System.String,System.UInt16)"> + <summary> + [IP/Port variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetGameServer(System.UInt32@,System.UInt16@,Steamworks.SteamId@)"> + <summary> + Gets the details of the lobby's game server, if set. Returns true if the lobby is + valid and has a server set, otherwise returns false. + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Owner"> + <summary> + You must be the lobby owner to set the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.IsOwnedBy(Steamworks.SteamId)"> + <summary> + Check if the specified SteamId owns the lobby + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceClose"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceFar"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceWorldwide"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithKeyValue(System.String,System.String)"> + <summary> + Filter by specified key/value pair; string parameters + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithLower(System.String,System.Int32)"> + <summary> + Numerical filter where value is less than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithHigher(System.String,System.Int32)"> + <summary> + Numerical filter where value is greater than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must be equal to the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithNotEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must not equal the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.AddNumericalFilter(System.String,System.Int32,Steamworks.LobbyComparison)"> + <summary> + Test key, initialize numerical filter list if necessary, then add new numerical filter + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.OrderByNear(System.String,System.Int32)"> + <summary> + Order filtered results according to key/values nearest the provided key/value pair. + Can specify multiple near value filters; each successive filter is lower priority than the previous. + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithSlotsAvailable(System.Int32)"> + <summary> + returns only lobbies with the specified number of slots available + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithMaxResults(System.Int32)"> + <summary> + sets how many results to return, the lower the count the faster it is to download the lobby results + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.RequestAsync"> + <summary> + Run the query, get the matching lobbies + </summary> + </member> + <member name="T:Steamworks.Data.OutgoingPacket"> + <summary> + A server query packet. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Address"> + <summary> + Target IP address + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Port"> + <summary> + Target port + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Data"> + <summary> + This data is pooled. Make a copy if you don't use it immediately. + This buffer is also quite large - so pay attention to Size. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Size"> + <summary> + Size of the data + </summary> + </member> + <member name="T:Steamworks.Data.RemotePlaySession"> + <summary> + Represents a RemotePlaySession from the SteamRemotePlay interface + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.IsValid"> + <summary> + Returns true if this session was valid when created. This will stay true even + after disconnection - so be sure to watch SteamRemotePlay.OnSessionDisconnected + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.SteamId"> + <summary> + Get the SteamID of the connected user + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.ClientName"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.FormFactor"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagUser(Steamworks.SteamId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.SetLocation(System.String)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagPublishedFile(Steamworks.Data.PublishedFileId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="P:Steamworks.Data.ServerInfo.Tags"> + <summary> + Gets the individual tags for this server + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToHistory"> + <summary> + Add this server to our history list + If we're already in the history list, weill set the last played time to now + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.QueryRulesAsync"> + <summary> + If this server responds to source engine style queries, we'll be able to get a list of rules here + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromHistory"> + <summary> + Remove this server from our history list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToFavourites"> + <summary> + Add this server to our favourite list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromFavourites"> + <summary> + Remove this server from our favourite list + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultStatus(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Find out the status of an asynchronous inventory result handle. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultItems(Steamworks.Data.SteamInventoryResult_t,Steamworks.Data.SteamItemDetails_t[],System.UInt32@)"> + <summary> + Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultTimestamp(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.CheckResultSteamID(Steamworks.Data.SteamInventoryResult_t,Steamworks.SteamId)"> + <summary> + Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.DestroyResult(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Destroys a result handle and frees all associated memory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetAllItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + Captures the entire state of the current users Steam inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetItemsByID(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId@,System.UInt32)"> + <summary> + Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GrantPromoItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only). + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.ConsumeItem(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId,System.UInt32)"> + <summary> + ConsumeItem() removes items from the inventory permanently. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.SendItemDropHeartbeat"> + <summary> + Deprecated method. Playtime accounting is performed on the Steam servers. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.TriggerItemDrop(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryDefId)"> + <summary> + Playtime credit must be consumed and turned into item drops by your game. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.LoadItemDefinitions"> + <summary> + LoadItemDefinitions triggers the automatic load and refresh of item definitions. + </summary> + </member> + <member name="M:Steamworks.ISteamUserStats.DownloadLeaderboardEntriesForUsers(Steamworks.Data.SteamLeaderboard_t,Steamworks.SteamId[],System.Int32)"> + <summary> + Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.Interface"> + <summary> + An optional interface to use instead of deriving + </summary> + </member> + <member name="F:Steamworks.ConnectionManager.Connection"> + <summary> + The actual connection we're managing + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.ConnectionInfo"> + <summary> + The last received ConnectionInfo + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We're trying to connect! + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We started connecting to this guy + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + We got disconnected + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnMessage(System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Must call Accept or Close on the connection within a second or so + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection leaves + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnMessage(Steamworks.Data.Connection,Steamworks.Data.NetIdentity,System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message from a connection + </summary> + </member> + <member name="T:Steamworks.SocketManager"> + <summary> + Used as a base to create your networking server. This creates a socket + and listens/communicates with multiple queries. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Default behaviour is to accept every connection + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="P:Steamworks.ServerList.Base.AppId"> + <summary> + Which app we're querying. Defaults to the current app. + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnChanges"> + <summary> + When a new server is added, this function will get called + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnResponsiveServer"> + <summary> + Called for every responsive server + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Responsive"> + <summary> + A list of servers that responded. If you're only interested in servers that responded since you + last updated, then simply clear this list. + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Unresponsive"> + <summary> + A list of servers that were in the master list but didn't respond. + </summary> + </member> + <member name="M:Steamworks.ServerList.Base.RunQueryAsync(System.Single)"> + <summary> + Query the server list. Task result will be true when finished + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamApps"> + <summary> + Exposes a wide range of information and actions for applications and Downloadable Content (DLC). + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnDlcInstalled"> + <summary> + posted after the user gains ownership of DLC and that DLC is installed + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnNewLaunchParameters"> + <summary> + posted after the user gains executes a Steam URL with command line or query parameters + such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc + while the game is already running. The new params can be queried + with GetLaunchQueryParam and GetLaunchCommandLine + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribed"> + <summary> + Checks if the active user is subscribed to the current App ID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFamilySharing"> + <summary> + Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsLowVoilence"> + <summary> + Checks if the license owned by the user provides low violence depots. + Low violence depots are useful for copies sold in countries that have content restrictions + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsCybercafe"> + <summary> + Checks whether the current App ID license is for Cyber Cafes. + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsVACBanned"> + <summary> + CChecks if the user has a VAC ban on their account + </summary> + </member> + <member name="P:Steamworks.SteamApps.GameLanguage"> + <summary> + Gets the current language that the user has set. + This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AvailableLanguages"> + <summary> + Gets a list of the languages the current app supports. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsSubscribedToApp(Steamworks.AppId)"> + <summary> + Checks if the active user is subscribed to a specified AppId. + Only use this if you need to check ownership of another game related to yours, a demo for example. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsDlcInstalled(Steamworks.AppId)"> + <summary> + Checks if the user owns a specific DLC and if the DLC is installed + </summary> + </member> + <member name="M:Steamworks.SteamApps.PurchaseTime(Steamworks.AppId)"> + <summary> + Returns the time of the purchase of the app + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFreeWeekend"> + <summary> + Checks if the user is subscribed to the current app through a free weekend + This function will return false for users who have a retail or other type of license + Before using, please ask your Valve technical contact how to package and secure your free weekened + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcInformation"> + <summary> + Returns metadata for all available DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.UninstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="P:Steamworks.SteamApps.CurrentBetaName"> + <summary> + Returns null if we're not on a beta branch, else the name of the branch + </summary> + </member> + <member name="M:Steamworks.SteamApps.MarkContentCorrupt(System.Boolean)"> + <summary> + Allows you to force verify game content on next launch. + + If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), + you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit. + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstalledDepots(Steamworks.AppId)"> + <summary> + Gets a list of all installed depots for a given App ID in mount order + </summary> + </member> + <member name="M:Steamworks.SteamApps.AppInstallDir(Steamworks.AppId)"> + <summary> + Gets the install folder for a specific AppID. + This works even if the application is not installed, based on where the game would be installed with the default Steam library location. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsAppInstalled(Steamworks.AppId)"> + <summary> + The app may not actually be owned by the current user, they may have it left over from a free weekend, etc. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AppOwner"> + <summary> + Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed.. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetLaunchParam(System.String)"> + <summary> + Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. + Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. + Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + but it is advised that you not param names beginning with an underscore for your own features. + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcDownloadProgress(Steamworks.AppId)"> + <summary> + Gets the download progress for optional DLC. + </summary> + </member> + <member name="P:Steamworks.SteamApps.BuildId"> + <summary> + Gets the buildid of this app, may change at any time based on backend updates to the game. + Defaults to 0 if you're not running a build downloaded from steam. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetFileDetailsAsync(System.String)"> + <summary> + Asynchronously retrieves metadata details about a specific file in the depot manifest. + Currently provides: + </summary> + </member> + <member name="P:Steamworks.SteamApps.CommandLine"> + <summary> + Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. + This method of passing a connect string (used when joining via rich presence, accepting an + invite, etc) is preferable to passing the connect string on the operating system command + line, which is a security risk. In order for rich presence joins to go through this + path and not be placed on the OS command line, you must set a value in your app's + configuration on Steam. Ask Valve for help with this. + </summary> + </member> + <member name="M:Steamworks.SteamClient.Init(System.UInt32,System.Boolean)"> + <summary> + Initialize the steam client. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="P:Steamworks.SteamClient.IsLoggedOn"> + <summary> + Checks if the current user's Steam client is connected to the Steam servers. + If it's not then no real-time services provided by the Steamworks API will be enabled. The Steam + client will automatically be trying to recreate the connection as often as possible. When the + connection is restored a SteamServersConnected_t callback will be posted. + You usually don't need to check for this yourself. All of the API calls that rely on this will + check internally. Forcefully disabling stuff when the player loses access is usually not a + very good experience for the player and you could be preventing them from accessing APIs that do not + need a live connection to Steam. + </summary> + </member> + <member name="P:Steamworks.SteamClient.SteamId"> + <summary> + Gets the Steam ID of the account currently logged into the Steam client. This is + commonly called the 'current user', or 'local user'. + A Steam ID is a unique identifier for a Steam accounts, Steam groups, Lobbies and Chat + rooms, and used to differentiate users in all parts of the Steamworks API. + </summary> + </member> + <member name="P:Steamworks.SteamClient.Name"> + <summary> + returns the local players name - guaranteed to not be NULL. + this is the same name as on the users community profile page + </summary> + </member> + <member name="P:Steamworks.SteamClient.State"> + <summary> + gets the status of the current user + </summary> + </member> + <member name="P:Steamworks.SteamClient.AppId"> + <summary> + returns the appID of the current process + </summary> + </member> + <member name="M:Steamworks.SteamClient.RestartAppIfNecessary(System.UInt32)"> + <summary> + Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't + this returns true then it starts the Steam client if required and launches your game again through it, + and you should quit your process as soon as possible. This effectively runs steam://run/AppId so it + may not relaunch the exact executable that called it, as it will always relaunch from the version + installed in your Steam library folder/ + Note that during development, when not launching via Steam, this might always return true. + </summary> + </member> + <member name="M:Steamworks.SteamClient.ValidCheck"> + <summary> + Called in interfaces that rely on this being initialized + </summary> + </member> + <member name="T:Steamworks.SteamFriends"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnChatMessage"> + <summary> + Called when chat message has been received from a friend. You'll need to turn on + ListenForFriendsMessages to recieve this. (friend, msgtype, message) + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnPersonaStateChange"> + <summary> + called when a friends' status changes + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameRichPresenceJoinRequested"> + <summary> + Called when the user tries to join a game from their friends list + rich presence will have been set with the "connect" key which is set here + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameOverlayActivated"> + <summary> + Posted when game overlay activates or deactivates + the game can use this to be pause or resume single player games + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameServerChangeRequested"> + <summary> + Called when the user tries to join a different game server from their friends list + game client should attempt to connect to specified server when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameLobbyJoinRequested"> + <summary> + Called when the user tries to join a lobby from their friends list + game client should attempt to connect to specified lobby when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnFriendRichPresenceUpdate"> + <summary> + Callback indicating updated data about friends rich presence information + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenOverlay(System.String)"> + <summary> + The dialog to open. Valid options are: + "friends", + "community", + "players", + "settings", + "officialgamegroup", + "stats", + "achievements". + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenUserOverlay(Steamworks.SteamId,System.String)"> + <summary> + "steamid" - Opens the overlay web browser to the specified user or groups profile. + "chat" - Opens a chat window to the specified user, or joins the group chat. + "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API. + "stats" - Opens the overlay web browser to the specified user's stats. + "achievements" - Opens the overlay web browser to the specified user's achievements. + "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend. + "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend. + "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite. + "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenStoreOverlay(Steamworks.AppId)"> + <summary> + Activates the Steam Overlay to the Steam store page for the provided app. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenWebOverlay(System.String,System.Boolean)"> + <summary> + Activates Steam Overlay web browser directly to the specified URL. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenGameInviteOverlay(Steamworks.SteamId)"> + <summary> + Activates the Steam Overlay to open the invite dialog. Invitations sent from this dialog will be for the provided lobby. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetPlayedWith(Steamworks.SteamId)"> + <summary> + Mark a target user as 'played with'. + NOTE: The current user must be in game with the other player for the association to work. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.RequestUserInformation(Steamworks.SteamId,System.Boolean)"> + <summary> + Requests the persona name and optionally the avatar of a specified user. + NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them. + returns true if we're fetching the data, false if we already have it + </summary> + </member> + <member name="M:Steamworks.SteamFriends.GetRichPresence(System.String)"> + <summary> + Find a rich presence value by key for current user. Will be null if not found. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetRichPresence(System.String,System.String)"> + <summary> + Sets a rich presence value by key for current user. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.ClearRichPresence"> + <summary> + Clears all of the current user's rich presence data. + </summary> + </member> + <member name="P:Steamworks.SteamFriends.ListenForFriendsMessages"> + <summary> + Listens for Steam friends chat messages. + You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. + After enabling this you will receive callbacks when ever the user receives a chat message. + </summary> + </member> + <member name="M:Steamworks.SteamInput.RunFrame"> + <summary> + You shouldn't really need to call this because it get called by RunCallbacks on SteamClient + but Valve think it might be a nice idea if you call it right before you get input info - + just to make sure the info you're getting is 100% up to date. + </summary> + </member> + <member name="P:Steamworks.SteamInput.Controllers"> + <summary> + Return a list of connected controllers. + </summary> + </member> + <member name="M:Steamworks.SteamInput.GetDigitalActionGlyph(Steamworks.Controller,System.String)"> + <summary> + Return an absolute path to the PNG image glyph for the provided digital action name. The current + action set in use for the controller will be used for the lookup. You should cache the result and + maintain your own list of loaded PNG assets. + </summary> + <param name="controller"></param> + <param name="action"></param> + <returns></returns> + </member> + <member name="T:Steamworks.SteamInventory"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamInventory.LoadItemDefinitions"> + <summary> + Call this if you're going to want to access definition information. You should be able to get + away with calling this once at the start if your game, assuming your items don't change all the time. + This will trigger OnDefinitionsUpdated at which point Definitions should be set. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.WaitForDefinitions(System.Single)"> + <summary> + Will call LoadItemDefinitions and wait until Definitions is not null + </summary> + </member> + <member name="M:Steamworks.SteamInventory.FindDefinition(Steamworks.Data.InventoryDefId)"> + <summary> + Try to find the definition that matches this definition ID. + Uses a dictionary so should be about as fast as possible. + </summary> + </member> + <member name="P:Steamworks.SteamInventory.Items"> + <summary> + We will try to keep this list of your items automatically up to date. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItems"> + <summary> + Update the list of Items[] + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItemsAsync"> + <summary> + Get all items and return the InventoryResult + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GenerateItemAsync(Steamworks.InventoryDef,System.Int32)"> + <summary> + This is used to grant a specific item to the user. This should + only be used for development prototyping, from a trusted server, + or if you don't care about hacked clients granting arbitrary items. + This call can be disabled by a setting on Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem.Amount[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.DeserializeAsync(System.Byte[],System.Int32)"> + <summary> + Deserializes a result set and verifies the signature bytes. + This call has a potential soft-failure mode where the Result is expired, it will + still succeed in this mode.The "expired" + result could indicate that the data may be out of date - not just due to timed + expiration( one hour ), but also because one of the items in the result set may + have been traded or consumed since the result set was generated.You could compare + the timestamp from GetResultTimestamp to ISteamUtils::GetServerRealTime to determine + how old the data is. You could simply ignore the "expired" result code and + continue as normal, or you could request the player with expired data to send + an updated result set. + You should call CheckResultSteamID on the result handle when it completes to verify + that a remote player is not pretending to have a different user's inventory. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GrantPromoItemsAsync"> + <summary> + Grant all promotional items the user is eligible for + </summary> + </member> + <member name="M:Steamworks.SteamInventory.TriggerItemDropAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger an item drop for this user. This is for timed drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.AddPromoItemAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger a promo item drop. You can call this at startup, it won't + give users multiple promo drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.StartPurchaseAsync(Steamworks.InventoryDef[])"> + <summary> + Start buying a cart load of items. This will return a positive result is the purchase has + begun. You should listen out for SteamUser.OnMicroTxnAuthorizationResponse for a success. + </summary> + </member> + <member name="T:Steamworks.SteamMatchmaking"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="P:Steamworks.SteamMatchmaking.MaxLobbyKeyLength"> + <summary> + Maximum number of characters a lobby metadata key can be + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyInvite"> + <summary> + Someone invited you to a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyEntered"> + <summary> + You joined a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyCreated"> + <summary> + You created a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyGameCreated"> + <summary> + A game server has been associated with the lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyDataChanged"> + <summary> + The lobby metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDataChanged"> + <summary> + The lobby member metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberJoined"> + <summary> + The lobby member joined + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberLeave"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDisconnected"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberKicked"> + <summary> + The lobby member was kicked. The 3rd param is the user that kicked them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberBanned"> + <summary> + The lobby member was banned. The 3rd param is the user that banned them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnChatMessage"> + <summary> + A chat message was recieved from a member of a lobby + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.CreateLobbyAsync(System.Int32)"> + <summary> + Creates a new invisible lobby. Call lobby.SetPublic to take it online. + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.JoinLobbyAsync(Steamworks.SteamId)"> + <summmary> + Attempts to directly join the specified lobby + </summmary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetFavoriteServers"> + <summary> + Get a list of servers that are on your favorites list + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetHistoryServers"> + <summary> + Get a list of servers that you have added to your play history + </summary> + </member> + <member name="T:Steamworks.SteamMatchmakingServers"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="T:Steamworks.SteamMusic"> + <summary> + Functions to control music playback in the steam client. + This gives games the opportunity to do things like pause the music or lower the volume, + when an important cut scene is shown, and start playing afterwards. + Nothing uses Steam Music though so this can probably get fucked + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnPlaybackChanged"> + <summary> + Playback status changed + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnVolumeChanged"> + <summary> + Volume changed, parameter is new volume + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsEnabled"> + <summary> + Checks if Steam Music is enabled + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsPlaying"> + <summary> + true if a song is currently playing, paused, or queued up to play; otherwise false. + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Status"> + <summary> + Gets the current status of the Steam Music player + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayPrevious"> + <summary> + Have the Steam Music player play the previous song. + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayNext"> + <summary> + Have the Steam Music player skip to the next song + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Volume"> + <summary> + Gets/Sets the current volume of the Steam Music player + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PSessionRequest"> + <summary> + This SteamId wants to send you a message. You should respond by calling AcceptP2PSessionWithUser + if you want to recieve their messages + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PConnectionFailed"> + <summary> + Called when packets can't get through to the specified user. + All queued packets unsent at this point will be dropped, further attempts + to send will retry making the connection (but will be dropped if we fail again). + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AcceptP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called in response to a OnP2PSessionRequest + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AllowP2PPacketRelay(System.Boolean)"> + <summary> + Allow or disallow P2P connects to fall back on Steam server relay if direct + connection or NAT traversal can't be established. Applies to connections + created after setting or old connections that need to reconnect. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.CloseP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called when you're done communicating with a user, as this will + free up all of the resources allocated for the connection under-the-hood. + If the remote user tries to send data to you again, a new OnP2PSessionRequest + callback will be posted + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.IsP2PPacketAvailable(System.Int32)"> + <summary> + Checks if a P2P packet is available to read, and gets the size of the message if there is one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte[],System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte*,System.UInt32,System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte[],System.Int32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte*,System.UInt32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket``1(Steamworks.Data.NetAddress)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6) + + To use this derive a class from SocketManager and override as much as you want. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket(Steamworks.Data.NetAddress,Steamworks.ISocketManager)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6). + + To use this you should pass a class that inherits ISocketManager. You can use + SocketManager to get connections and send messages, but the ISocketManager class + will received all the appropriate callbacks. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal``1(Steamworks.Data.NetAddress)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal(Steamworks.Data.NetAddress,Steamworks.IConnectionManager)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateRelaySocket``1(System.Int32)"> + <summary> + Creates a server that will be relayed via Valve's network (hiding the IP and improving ping) + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectRelay``1(Steamworks.SteamId,System.Int32)"> + <summary> + Connect to a relay server + </summary> + </member> + <member name="T:Steamworks.SteamNetworkingUtils"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamNetworkingUtils.OnDebugOutput"> + <summary> + A function to receive debug network information on. This will do nothing + unless you set DebugLevel to something other than None. + + You should set this to an appropriate level instead of setting it to the highest + and then filtering it by hand because a lot of energy is used by creating the strings + and your frame rate will tank and you won't know why. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Status"> + <summary> + The latest available status gathered from the SteamRelayNetworkStatus callback + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.InitRelayNetworkAccess"> + <summary> + If you know that you are going to be using the relay network (for example, + because you anticipate making P2P connections), call this to initialize the + relay network. If you do not call this, the initialization will + be delayed until the first time you use a feature that requires access + to the relay network, which will delay that first access. + + You can also call this to force a retry if the previous attempt has failed. + Performing any action that requires access to the relay network will also + trigger a retry, and so calling this function is never strictly necessary, + but it can be useful to call it a program launch time, if access to the + relay network is anticipated. + + Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + callbacks to know when initialization has completed. + Typically initialization completes in a few seconds. + + Note: dedicated servers hosted in known data centers do *not* need + to call this, since they do not make routing decisions. However, if + the dedicated server will be using P2P functionality, it will act as + a "client" and this should be called. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.LocalPingLocation"> + <summary> + Return location info for the current host. + + It takes a few seconds to initialize access to the relay network. If + you call this very soon after startup the data may not be available yet. + + This always return the most up-to-date information we have available + right now, even if we are in the middle of re-calculating ping times. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + <summary> + Same as PingLocation.EstimatePingTo, but assumes that one location is the local host. + This is a bit faster, especially if you need to calculate a bunch of + these in a loop to find the fastest one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.WaitForPingDataAsync(System.Single)"> + <summary> + If you need ping information straight away, wait on this. It will return + immediately if you already have up to date ping data + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.ConnectionTimeout"> + <summary> + Timeout value (in ms) to use when first connecting + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Timeout"> + <summary> + Timeout value (in ms) to use after connection is established + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.SendBufferSize"> + <summary> + Upper limit of buffered pending bytes to be sent. + If this is reached SendMessage will return LimitExceeded. + Default is 524288 bytes (512k) + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.DebugLevel"> + <summary> + Get Debug Information via OnDebugOutput event + + Except when debugging, you should only use NetDebugOutput.Msg + or NetDebugOutput.Warning. For best performance, do NOT + request a high detail level and then filter out messages in the callback. + + This incurs all of the expense of formatting the messages, which are then discarded. + Setting a high priority value (low numeric value) here allows the library to avoid + doing this work. + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugLevel"> + <summary> + So we can remember and provide a Get for DebugLEvel + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugFunc"> + <summary> + We need to keep the delegate around until it's not used anymore + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OnDebugMessage(Steamworks.NetDebugOutput,System.IntPtr)"> + <summary> + This can be called from other threads - so we're going to queue these up and process them in a safe place. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OutputDebugMessages"> + <summary> + Called regularly from the Dispatch loop so we can provide a timely + stream of messages. + </summary> + </member> + <member name="T:Steamworks.SteamParental"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamParental.OnSettingsChanged"> + <summary> + Parental Settings Changed + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockEnabled"> + <summary> + + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockLocked"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsAppBlocked(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsAppInBlockList(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsFeatureBlocked(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsFeatureInBlockList(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="T:Steamworks.SteamParties"> + <summary> + This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. + Tell Steam the number of player spots that are available for your party, and a join-game string, and it + will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. + Adjust the number of open slots if other players join through alternate matchmaking methods. + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnBeaconLocationsUpdated"> + <summary> + The list of possible Party beacon locations has changed + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnActiveBeaconsUpdated"> + <summary> + The list of active beacons may have changed + </summary> + </member> + <member name="T:Steamworks.SteamRemotePlay"> + <summary> + Functions that provide information about Steam Remote Play sessions, streaming your game content to another computer or to a Steam Link app or hardware. + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionConnected"> + <summary> + Called when a session is connected + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionDisconnected"> + <summary> + Called when a session becomes disconnected + </summary> + </member> + <member name="P:Steamworks.SteamRemotePlay.SessionCount"> + <summary> + Get the number of currently connected Steam Remote Play sessions + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.GetSession(System.Int32)"> + <summary> + Get the currently connected Steam Remote Play session ID at the specified index. + IsValid will return false if it's out of bounds + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.SendInvite(Steamworks.SteamId)"> + <summary> + Invite a friend to Remote Play Together + This returns false if the invite can't be sent + </summary> + </member> + <member name="T:Steamworks.SteamRemoteStorage"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileWrite(System.String,System.Byte[])"> + <summary> + Creates a new file, writes the bytes to the file, and then closes the file. + If the target file already exists, it is overwritten + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileRead(System.String)"> + <summary> + Opens a binary file, reads the contents of the file into a byte array, and then closes the file. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileExists(System.String)"> + <summary> + Checks whether the specified file exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FilePersisted(System.String)"> + <summary> + Checks if a specific file is persisted in the steam cloud. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileTime(System.String)"> + <summary> + Gets the specified file's last modified date/time. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileSize(System.String)"> + <summary> + Gets the specified files size in bytes. 0 if not exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileForget(System.String)"> + <summary> + Deletes the file from remote storage, but leaves it on the local disk and remains accessible from the API. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileDelete(System.String)"> + <summary> + Deletes a file from the local disk, and propagates that delete to the cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaBytes"> + <summary> + Number of bytes total + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaUsedBytes"> + <summary> + Number of bytes used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaRemainingBytes"> + <summary> + Number of bytes remaining until your quota is used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabled"> + <summary> + returns true if IsCloudEnabledForAccount AND IsCloudEnabledForApp + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForAccount"> + <summary> + Checks if the account wide Steam Cloud setting is enabled for this user + or if they disabled it in the Settings->Cloud dialog. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForApp"> + <summary> + Checks if the per game Steam Cloud setting is enabled for this user + or if they disabled it in the Game Properties->Update dialog. + + This must only ever be set as the direct result of the user explicitly + requesting that it's enabled or not. This is typically accomplished with + a checkbox within your in-game options + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.FileCount"> + <summary> + Gets the total number of local files synchronized by Steam Cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.Files"> + <summary> + Get a list of filenames synchronized by Steam Cloud + </summary> + </member> + <member name="T:Steamworks.SteamScreenshots"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotRequested"> + <summary> + A screenshot has been requested by the user from the Steam screenshot hotkey. + This will only be called if Hooked is true, in which case Steam + will not take the screenshot itself. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotReady"> + <summary> + A screenshot successfully written or otherwise added to the library and can now be tagged. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotFailed"> + <summary> + A screenshot attempt failed + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.WriteScreenshot(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.AddScreenshot(System.String,System.String,System.Int32,System.Int32)"> + <summary> + Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + JPEG, TGA, and PNG formats are supported. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.TriggerScreenshot"> + <summary> + Causes the Steam overlay to take a screenshot. + If screenshots are being hooked by the game then a + ScreenshotRequested callback is sent back to the game instead. + </summary> + </member> + <member name="P:Steamworks.SteamScreenshots.Hooked"> + <summary> + Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or if the game handles them. + Hooking is disabled by default, and only ever enabled if you do so with this function. + If the hooking is enabled, then the ScreenshotRequested_t callback will be sent if the user presses the hotkey or + when TriggerScreenshot is called, and then the game is expected to call WriteScreenshot or AddScreenshotToLibrary in response. + </summary> + </member> + <member name="T:Steamworks.SteamServer"> + <summary> + Provides the core of the Steam Game Servers API + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnValidateAuthTicketResponse"> + <summary> + User has been authed or rejected + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the server now is logged on and has a working connection to the Steam master server. + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServerConnectFailure"> + <summary> + This will occur periodically if the Steam client is not connected, and has failed when retrying to establish a connection (result, stilltrying) + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersDisconnected"> + <summary> + Disconnected from Steam + </summary> + </member> + <member name="M:Steamworks.SteamServer.Init(Steamworks.AppId,Steamworks.SteamServerInit,System.Boolean)"> + <summary> + Initialize the steam server. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="M:Steamworks.SteamServer.RunCallbacks"> + <summary> + Run the callbacks. This is also called in Async callbacks. + </summary> + </member> + <member name="P:Steamworks.SteamServer.DedicatedServer"> + <summary> + Sets whether this should be marked as a dedicated server. + If not, it is assumed to be a listen server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MaxPlayers"> + <summary> + Gets or sets the current MaxPlayers. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.BotCount"> + <summary> + Gets or sets the current BotCount. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MapName"> + <summary> + Gets or sets the current Map Name. + </summary> + </member> + <member name="P:Steamworks.SteamServer.ModDir"> + <summary> + Gets or sets the current ModDir + </summary> + </member> + <member name="P:Steamworks.SteamServer.Product"> + <summary> + Gets the current product + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameDescription"> + <summary> + Gets or sets the current Product + </summary> + </member> + <member name="P:Steamworks.SteamServer.ServerName"> + <summary> + Gets or sets the current ServerName + </summary> + </member> + <member name="P:Steamworks.SteamServer.Passworded"> + <summary> + Set whether the server should report itself as passworded + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameTags"> + <summary> + Gets or sets the current GameTags. This is a comma seperated list of tags for this server. + When querying the server list you can filter by these tags. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOnAnonymous"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOff"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="P:Steamworks.SteamServer.LoggedOn"> + <summary> + Returns true if the server is connected and registered with the Steam master server + You should have called LogOnAnonymous etc on startup. + </summary> + </member> + <member name="P:Steamworks.SteamServer.PublicIp"> + <summary> + To the best of its ability this tries to get the server's + current public ip address. Be aware that this is likely to return + null for the first few seconds after initialization. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeats"> + <summary> + Enable or disable heartbeats, which are sent regularly to the master server. + Enabled by default. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeatRate"> + <summary> + Set heartbeat interval, if automatic heartbeats are enabled. + You can leave this at the default. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ForceHeartbeat"> + <summary> + Force send a heartbeat to the master server instead of waiting + for the next automatic update (if you've left them enabled) + </summary> + </member> + <member name="M:Steamworks.SteamServer.UpdatePlayer(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Update this connected player's information. You should really call this + any time a player's name or score changes. This keeps the information shown + to server queries up to date. + </summary> + </member> + <member name="M:Steamworks.SteamServer.SetKey(System.String,System.String)"> + <summary> + Sets a Key Value. These can be anything you like, and are accessible + when querying servers from the server list. + + Information describing gamemodes are common here. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ClearKeys"> + <summary> + Remove all key values + </summary> + </member> + <member name="M:Steamworks.SteamServer.BeginAuthSession(System.Byte[],Steamworks.SteamId)"> + <summary> + Start authorizing a ticket. This user isn't authorized yet. Wait for a call to OnAuthChange. + </summary> + </member> + <member name="M:Steamworks.SteamServer.EndSession(Steamworks.SteamId)"> + <summary> + Forget this guy. They're no longer in the game. + </summary> + </member> + <member name="M:Steamworks.SteamServer.GetOutgoingPacket(Steamworks.Data.OutgoingPacket@)"> + <summary> + If true, Steam wants to send a packet. You should respond by sending + this packet in an unconnected way to the returned Address and Port. + </summary> + <param name="packet">Packet to send. The Data passed is pooled - so use it immediately.</param> + <returns>True if we want to send a packet</returns> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.Byte[],System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.IntPtr,System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.UserHasLicenseForApp(Steamworks.SteamId,Steamworks.AppId)"> + <summary> + Does the user own this app (which could be DLC) + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.RequestUserStatsAsync(Steamworks.SteamId)"> + <summary> + Downloads stats for the user + If the user has no stats will return fail + these stats will only be auto-updated for clients playing on the server + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Unlocks the specified achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.ClearAchievement(Steamworks.SteamId,System.String)"> + <summary> + Resets the unlock status of an achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Return true if available, exists and unlocked + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.StoreUserStats(Steamworks.SteamId)"> + <summary> + Once you've set a stat change on a user you need to commit your changes. + You can do that using this function. The callback will let you know if + your action succeeded, but most of the time you can fire and forget. + </summary> + </member> + <member name="T:Steamworks.SteamUGC"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUGC.OnDownloadItemResult"> + <summary> + Posted after Download call + </summary> + </member> + <member name="M:Steamworks.SteamUGC.Download(Steamworks.Data.PublishedFileId,System.Boolean)"> + <summary> + Start downloading this item. You'll get notified of completion via OnDownloadItemResult. + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="highPriority">If true this should go straight to the top of the download list</param> + <returns>true if nothing went wrong and the download is started</returns> + </member> + <member name="M:Steamworks.SteamUGC.DownloadAsync(Steamworks.Data.PublishedFileId,System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Will attempt to download this item asyncronously - allowing you to instantly react to its installation + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="progress">An optional callback</param> + <param name="ct">Allows you to send a message to cancel the download anywhere during the process</param> + <param name="milisecondsUpdateDelay">How often to call the progress function</param> + <returns>true if downloaded and installed correctly</returns> + </member> + <member name="M:Steamworks.SteamUGC.QueryFileAsync(Steamworks.Data.PublishedFileId)"> + <summary> + Utility function to fetch a single item. Internally this uses Ugc.FileQuery - + which you can use to query multiple items if you need to. + </summary> + </member> + <member name="T:Steamworks.SteamUser"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the Steam client now has a working connection to the Steam servers. + Usually this will have occurred before the game has launched, and should only be seen if the + user has dropped connection due to a networking issue or a Steam server update. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServerConnectFailure"> + <summary> + Called when a connection attempt has failed. + This will occur periodically if the Steam client is not connected, + and has failed when retrying to establish a connection. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersDisconnected"> + <summary> + Called if the client has lost connection to the Steam servers. + Real-time services will be disabled until a matching OnSteamServersConnected has been posted. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnClientGameServerDeny"> + <summary> + Sent by the Steam server to the client telling it to disconnect from the specified game server, + which it may be in the process of or already connected to. + The game client should immediately disconnect upon receiving this message. + This can usually occur if the user doesn't have rights to play on the game server. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnLicensesUpdated"> + <summary> + Called whenever the users licenses (owned packages) changes. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnValidateAuthTicketResponse"> + <summary> + Called when an auth ticket has been validated. + The first parameter is the steamid of this user + The second is the Steam ID that owns the game, this will be different from the first + if the game is being borrowed via Steam Family Sharing + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGetAuthSessionTicketResponse"> + <summary> + Used internally for GetAuthSessionTicketAsync + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnMicroTxnAuthorizationResponse"> + <summary> + Called when a user has responded to a microtransaction authorization request. + ( appid, orderid, user authorized ) + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGameWebCallback"> + <summary> + Sent to your game in response to a steam://gamewebcallback/ command from a user clicking a link in the Steam overlay browser. + You can use this to add support for external site signups where you want to pop back into the browser after some web page + signup sequence, and optionally get back some detail about that. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnDurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, + half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.SteamUser.VoiceRecord"> + <summary> + Starts/Stops voice recording. + Once started, use GetAvailableVoice and GetVoice to get the data, and then call StopVoiceRecording + when the user has released their push-to-talk hotkey or the game session has completed. + </summary> + </member> + <member name="P:Steamworks.SteamUser.HasVoiceData"> + <summary> + Returns true if we have voice data waiting to be read + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceData(System.IO.Stream)"> + <summary> + Reads the voice data and returns the number of bytes written. + The compressed data can be transmitted by your application and decoded back into raw audio data using + DecompressVoice on the other side. The compressed data provided is in an arbitrary format and is not meant to be played directly. + This should be called once per frame, and at worst no more than four times a second to keep the microphone input delay as low as + possible. Calling this any less may result in gaps in the returned stream. + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceDataBytes"> + <summary> + Reads the voice data and returns the bytes. You should obviously ideally be using + ReadVoiceData because it won't be creating a new byte array every call. But this + makes it easier to get it working, so let the babies have their bottle. + </summary> + </member> + <member name="M:Steamworks.SteamUser.DecompressVoice(System.IO.Stream,System.Int32,System.IO.Stream)"> + <summary> + Decodes the compressed voice data returned by GetVoice. + The output data is raw single-channel 16-bit PCM audio.The decoder supports any sample rate from 11025 to 48000. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicket"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicketAsync(System.Double)"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + This waits for a positive response from the backend before returning the ticket. This means + the ticket is definitely ready to go as soon as it returns. Will return null if the callback + times out or returns negatively. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsBehindNAT"> + <summary> + Checks if the current users looks like they are behind a NAT device. + This is only valid if the user is connected to the Steam servers and may not catch all forms of NAT. + </summary> + </member> + <member name="P:Steamworks.SteamUser.SteamLevel"> + <summary> + Gets the Steam level of the user, as shown on their Steam community profile. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetStoreAuthUrlAsync(System.String)"> + <summary> + Requests a URL which authenticates an in-game browser for store check-out, and then redirects to the specified URL. + As long as the in-game browser accepts and handles session cookies, Steam microtransaction checkout pages will automatically recognize the user instead of presenting a login page. + NOTE: The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. + NOTE: The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneVerified"> + <summary> + Checks whether the current user has verified their phone number. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsTwoFactorEnabled"> + <summary> + Checks whether the current user has Steam Guard two factor authentication enabled on their account. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneIdentifying"> + <summary> + Checks whether the user's phone number is used to uniquely identify them. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneRequiringVerification"> + <summary> + Checks whether the current user's phone number is awaiting (re)verification. + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync(System.Byte[])"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + If you get a null result from this it's probably because you're calling it too often. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetDurationControl"> + <summary> + Get anti indulgence / duration control + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementIconFetched"> + <summary> + called when the achivement icon is loaded + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsReceived"> + <summary> + called when the latests stats and achievements have been received + from the server + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsStored"> + <summary> + result of a request to store the user stats for a game + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementProgress"> + <summary> + result of a request to store the achievements for a game, or an + "indicate progress" call. If both m_nCurProgress and m_nMaxProgress + are zero, that means the achievement has been fully unlocked + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsUnloaded"> + <summary> + Callback indicating that a user's stats have been unloaded + </summary> + </member> + <member name="P:Steamworks.SteamUserStats.Achievements"> + <summary> + Get the available achievements + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.IndicateAchievementProgress(System.String,System.Int32,System.Int32)"> + <summary> + Show the user a pop-up notification with the current progress toward an achievement. + Will return false if RequestCurrentStats has not completed and successfully returned + its callback, if the achievement doesn't exist/has unpublished changes in the app's + Steamworks Admin page, or if the achievement is unlocked. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.PlayerCountAsync"> + <summary> + Tries to get the number of players currently playing this game. + Or -1 if failed. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.StoreStats"> + <summary> + Send the changed stats and achievements data to the server for permanent storage. + If this fails then nothing is sent to the server. It's advisable to keep trying until the call is successful. + This call can be rate limited. Call frequency should be on the order of minutes, rather than seconds.You should only be calling this during major state changes such as the end of a round, the map changing, or the user leaving a server. This call is required to display the achievement unlock notification dialog though, so if you have called SetAchievement then it's advisable to call this soon after that. + If you have stats or achievements that you have saved locally but haven't uploaded with this function when your application process ends then this function will automatically be called. + You can find additional debug information written to the %steam_install%\logs\stats_log.txt file. + This function returns true upon success if : + RequestCurrentStats has completed and successfully returned its callback AND + the current game has stats associated with it in the Steamworks Partner backend, and those stats are published. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestCurrentStats"> + <summary> + Asynchronously request the user's current stats and achievements from the server. + You must always call this first to get the initial status of stats and achievements. + Only after the resulting callback comes back can you start calling the rest of the stats + and achievement functions for the current user. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestGlobalStatsAsync(System.Int32)"> + <summary> + Asynchronously fetches global stats data, which is available for stats marked as + "aggregated" in the App Admin panel of the Steamworks website. + You must have called RequestCurrentStats and it needs to return successfully via + its callback prior to calling this. + </summary> + <param name="days">How many days of day-by-day history to retrieve in addition to the overall totals. The limit is 60.</param> + <returns>OK indicates success, InvalidState means you need to call RequestCurrentStats first, Fail means the remote call failed</returns> + </member> + <member name="M:Steamworks.SteamUserStats.FindOrCreateLeaderboardAsync(System.String,Steamworks.Data.LeaderboardSort,Steamworks.Data.LeaderboardDisplay)"> + <summary> + Gets a leaderboard by name, it will create it if it's not yet created. + Leaderboards created with this function will not automatically show up in the Steam Community. + You must manually set the Community Name field in the App Admin panel of the Steamworks website. + As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on + the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of + dynamically created leaderboards. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Int32)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Single)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Int32)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Single)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatInt(System.String)"> + <summary> + Get a Int stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatFloat(System.String)"> + <summary> + Get a float stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.ResetAll(System.Boolean)"> + <summary> + Practically wipes the slate clean for this user. If includeAchievements is true, will wipe + any achievements too. + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamUtils"> + <summary> + Interface which provides access to a range of miscellaneous utility functions + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnIpCountryChanged"> + <summary> + The country of the user changed + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnLowBatteryPower"> + <summary> + Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute + The parameter is the number of minutes left + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnSteamShutdown"> + <summary> + Called when Steam wants to shutdown + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnGamepadTextInputDismissed"> + <summary> + Big Picture gamepad text input has been closed. Parameter is true if text was submitted, false if cancelled etc. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceAppActive"> + <summary> + Returns the number of seconds since the application was active + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceComputerActive"> + <summary> + Returns the number of seconds since the user last moved the mouse etc + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamServerTime"> + <summary> + Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IpCountry"> + <summary> + returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + e.g "US" or "UK". + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImageSize(System.Int32,System.UInt32@,System.UInt32@)"> + <summary> + returns true if the image exists, and the buffer was successfully filled out + results are returned in RGBA format + the destination buffer size should be 4 * height * width * sizeof(char) + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImage(System.Int32)"> + <summary> + returns the image in RGBA format + </summary> + </member> + <member name="P:Steamworks.SteamUtils.UsingBatteryPower"> + <summary> + Returns true if we're using a battery (ie, a laptop not plugged in) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.CurrentBatteryPower"> + <summary> + Returns battery power [0-1] + </summary> + </member> + <member name="P:Steamworks.SteamUtils.OverlayNotificationPosition"> + <summary> + Sets the position where the overlay instance for the currently calling game should show notifications. + This position is per-game and if this function is called from outside of a game context it will do nothing. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsOverlayEnabled"> + <summary> + Returns true if the overlay is running and the user can access it. The overlay process could take a few seconds to + start and hook the game process, so this function will initially return false while the overlay is loading. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.DoesOverlayNeedPresent"> + <summary> + Normally this call is unneeded if your game has a constantly running frame loop that calls the + D3D Present API, or OGL SwapBuffers API every frame. + + However, if you have a game that only refreshes the screen on an event driven basis then that can break + the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + need to Present() to the screen any time an even needing a notification happens or when the overlay is + brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.CheckFileSignatureAsync(System.String)"> + <summary> + Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + of the partner site, for example to refuse to load modified executable files. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.ShowGamepadTextInput(Steamworks.GamepadTextInputMode,Steamworks.GamepadTextInputLineMode,System.String,System.Int32,System.String)"> + <summary> + Activates the Big Picture text input dialog which only supports gamepad input + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetEnteredGamepadText"> + <summary> + Returns previously entered text + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamUILanguage"> + <summary> + returns the language the steam client is running in, you probably want + Apps.CurrentGameLanguage instead, this is for very special usage cases + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamRunningInVR"> + <summary> + returns true if Steam itself is running in VR mode + </summary> + </member> + <member name="M:Steamworks.SteamUtils.SetOverlayNotificationInset(System.Int32,System.Int32)"> + <summary> + Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamInBigPictureMode"> + <summary> + returns true if Steam and the Steam Overlay are running in Big Picture mode + Games much be launched through the Steam client to enable the Big Picture overlay. During development, + a game can be added as a non-steam game to the developers library to test this feature + </summary> + </member> + <member name="M:Steamworks.SteamUtils.StartVRDashboard"> + <summary> + ask SteamUI to create and render its OpenVR dashboard + </summary> + </member> + <member name="P:Steamworks.SteamUtils.VrHeadsetStreaming"> + <summary> + Set whether the HMD content will be streamed via Steam In-Home Streaming + If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + (this is useful for games that have asymmetric multiplayer gameplay) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamChinaLauncher"> + <summary> + Returns whether this steam client is a Steam China specific client, vs the global client + </summary> + </member> + <member name="T:Steamworks.SteamVideo"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="P:Steamworks.SteamVideo.IsBroadcasting"> + <summary> + Return true if currently using Steam's live broadcasting + </summary> + </member> + <member name="P:Steamworks.SteamVideo.NumViewers"> + <summary> + If we're broadcasting, will return the number of live viewers + </summary> + </member> + <member name="P:Steamworks.Controller.ActionSet"> + <summary> + Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + our state loops, instead of trying to place it in all of your state transitions. + </summary> + </member> + <member name="M:Steamworks.Controller.GetDigitalState(System.String)"> + <summary> + Returns the current state of the supplied digital game action + </summary> + </member> + <member name="M:Steamworks.Controller.GetAnalogState(System.String)"> + <summary> + Returns the current state of these supplied analog game action + </summary> + </member> + <member name="P:Steamworks.Friend.IsMe"> + <summary> + Returns true if this is the local user + </summary> + </member> + <member name="P:Steamworks.Friend.IsFriend"> + <summary> + Return true if this is a friend + </summary> + </member> + <member name="P:Steamworks.Friend.IsBlocked"> + <summary> + Returns true if you have this user blocked + </summary> + </member> + <member name="P:Steamworks.Friend.IsPlayingThisGame"> + <summary> + Return true if this user is playing the game we're running + </summary> + </member> + <member name="P:Steamworks.Friend.IsOnline"> + <summary> + Returns true if this friend is online + </summary> + </member> + <member name="M:Steamworks.Friend.RequestInfoAsync"> + <summary> + Sometimes we don't know the user's name. This will wait until we have + downloaded the information on this user. + </summary> + </member> + <member name="P:Steamworks.Friend.IsAway"> + <summary> + Returns true if this friend is marked as away + </summary> + </member> + <member name="P:Steamworks.Friend.IsBusy"> + <summary> + Returns true if this friend is marked as busy + </summary> + </member> + <member name="P:Steamworks.Friend.IsSnoozing"> + <summary> + Returns true if this friend is marked as snoozing + </summary> + </member> + <member name="M:Steamworks.Friend.InviteToGame(System.String)"> + <summary> + Invite this friend to the game that we are playing + </summary> + </member> + <member name="M:Steamworks.Friend.SendMessage(System.String)"> + <summary> + Sends a message to a Steam friend. Returns true if success + </summary> + </member> + <member name="M:Steamworks.Friend.RequestUserStatsAsync"> + <summary> + Tries to get download the latest user stats + </summary> + <returns>True if successful, False if failure</returns> + </member> + <member name="M:Steamworks.Friend.GetStatFloat(System.String,System.Single)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetStatInt(System.String,System.Int32)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievement(System.String,System.Boolean)"> + <summary> + Gets a user achievement state. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievementUnlockTime(System.String)"> + <summary> + Gets a the time this achievement was unlocked. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <returns>The time unlocked. If it wasn't unlocked, or you haven't downloaded the stats yet - will return DateTime.MinValue</returns> + </member> + <member name="P:Steamworks.InventoryDef.Name"> + <summary> + Shortcut to call GetProperty( "name" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Description"> + <summary> + Shortcut to call GetProperty( "description" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrl"> + <summary> + Shortcut to call GetProperty( "icon_url" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrlLarge"> + <summary> + Shortcut to call GetProperty( "icon_url_large" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.PriceCategory"> + <summary> + Shortcut to call GetProperty( "price_category" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Type"> + <summary> + Shortcut to call GetProperty( "type" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IsGenerator"> + <summary> + Returns true if this is an item that generates an item, rather + than something that is actual an item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.ExchangeSchema"> + <summary> + Shortcut to call GetProperty( "exchange" ) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipes"> + <summary> + Get a list of exchanges that are available to make this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Marketable"> + <summary> + Shortcut to call GetBoolProperty( "marketable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Tradable"> + <summary> + Shortcut to call GetBoolProperty( "tradable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Created"> + <summary> + Gets the property timestamp + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Modified"> + <summary> + Gets the property modified + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty(System.String)"> + <summary> + Get a specific property by name + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetBoolProperty(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty``1(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Properties"> + <summary> + Gets a list of all properties on this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalPrice"> + <summary> + Returns the price of this item in the local currency (SteamInventory.Currency) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalBasePrice"> + <summary> + If the price has been discounted, LocalPrice will differ from LocalBasePrice + (assumed, this isn't documented) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipesContainingThis"> + <summary> + Return a list of recepies that contain this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Properties"> + <summary> + Only available if the result set was created with the getproperties + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsNoTrade"> + <summary> + This item is account-locked and cannot be traded or given away. + This is an item status flag which is permanently attached to specific item instances + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsRemoved"> + <summary> + The item has been destroyed, traded away, expired, or otherwise invalidated. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsConsumed"> + <summary> + The item quantity has been decreased by 1 via ConsumeItem API. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="M:Steamworks.InventoryItem.ConsumeAsync(System.Int32)"> + <summary> + Consumes items from a user's inventory. If the quantity of the given item goes to zero, it is permanently removed. + Once an item is removed it cannot be recovered.This is not for the faint of heart - if your game implements item removal at all, + a high-friction UI confirmation process is highly recommended.ConsumeItem can be restricted to certain item definitions or fully + blocked via the Steamworks website to minimize support/abuse issues such as the classic "my brother borrowed my laptop and deleted all of my rare items". + </summary> + </member> + <member name="M:Steamworks.InventoryItem.SplitStackAsync(System.Int32)"> + <summary> + Split stack into two items + </summary> + </member> + <member name="M:Steamworks.InventoryItem.AddAsync(Steamworks.InventoryItem,System.Int32)"> + <summary> + Add x units of the target item to this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Acquired"> + <summary> + Will try to return the date that this item was aquired. You need to have for the items + with their properties for this to work. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Origin"> + <summary> + Tries to get the origin property. Need properties for this to work. + Will return a string like "market" + </summary> + </member> + <member name="T:Steamworks.InventoryItem.Amount"> + <summary> + Small utility class to describe an item with a quantity + </summary> + </member> + <member name="T:Steamworks.InventoryRecipe"> + <summary> + A structured description of an item exchange + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.DefinitionId"> + <summary> + The definition ID of the ingredient. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Definition"> + <summary> + If we don't know about this item definition this might be null. + In which case, DefinitionId should still hold the correct id. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Count"> + <summary> + The amount of this item needed. Generally this will be 1. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Result"> + <summary> + The item that this will create. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredients"> + <summary> + The items, with quantity required to create this item. + </summary> + </member> + <member name="M:Steamworks.InventoryResult.BelongsTo(Steamworks.SteamId)"> + <summary> + Checks whether an inventory result handle belongs to the specified Steam ID. + This is important when using Deserialize, to verify that a remote player is not pretending to have a different user's inventory + </summary> + </member> + <member name="M:Steamworks.InventoryResult.Serialize"> + <summary> + Serialized result sets contain a short signature which can't be forged or replayed across different game sessions. + A result set can be serialized on the local client, transmitted to other players via your game networking, and + deserialized by the remote players.This is a secure way of preventing hackers from lying about posessing + rare/high-value items. Serializes a result set with signature bytes to an output buffer.The size of a serialized + result depends on the number items which are being serialized.When securely transmitting items to other players, + it is recommended to use GetItemsByID first to create a minimal result set. + Results have a built-in timestamp which will be considered "expired" after an hour has elapsed.See DeserializeResult + for expiration handling. + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.Owner"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.MetaData"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.JoinAsync"> + <summary> + Will attempt to join the party. If successful will return a connection string. + If failed, will return null + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.OnReservationCompleted(Steamworks.SteamId)"> + <summary> + When a user follows your beacon, Steam will reserve one of the open party slots for them, and send your game a ReservationNotification callback. + When that user joins your party, call OnReservationCompleted to notify Steam that the user has joined successfully + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.CancelReservation(Steamworks.SteamId)"> + <summary> + To cancel a reservation (due to timeout or user input), call this. + Steam will open a new reservation slot. + Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.Destroy"> + <summary> + Turn off the beacon + </summary> + </member> + <member name="T:Steamworks.SteamServerInit"> + <summary> + Used to set up the server. + The variables in here are all required to be set, and can't be changed once the server is created. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.VersionString"> + <summary> + The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. + If you go into the dedicated server tab on steamworks you'll be able to server the latest version. If this version number is + less than that latest version then your server won't show. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.ModDir"> + <summary> + This should be the same directory game where gets installed into. Just the folder name, not the whole path. I.e. "Rust", "Garrysmod". + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.GameDescription"> + <summary> + The game description. Setting this to the full name of your game is recommended. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.DedicatedServer"> + <summary> + Is a dedicated server + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithRandomSteamPort"> + <summary> + Set the Steam quert port + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithQueryShareGamePort"> + <summary> + If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE into usQueryPort, then it causes the game server API to use + "GameSocketShare" mode, which means that the game is responsible for sending and receiving UDP packets for the master + server updater. + + More info about this here: https://partner.steamgames.com/doc/api/ISteamGameServer#HandleIncomingPacket + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewCommunityFile"> + <summary> + Create a Normal Workshop item that can be subscribed to + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewMicrotransactionFile"> + <summary> + Workshop item that is meant to be voted on for the purpose of selling in-game + </summary> + </member> + <member name="F:Steamworks.Ugc.PublishResult.NeedsWorkshopAgreement"> + <summary> + https://partner.steamgames.com/doc/features/workshop/implementation#Legal + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Id"> + <summary> + The actual ID of this file + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Title"> + <summary> + The given title of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Description"> + <summary> + The description of this item, in your local language if available + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Tags"> + <summary> + A list of tags for this item, all lowercase + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CreatorApp"> + <summary> + App Id of the app that created this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ConsumerApp"> + <summary> + App Id of the app that will consume this item. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Owner"> + <summary> + User who created this content + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Score"> + <summary> + The bayesian average for up votes / total votes, between [0,1] + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Created"> + <summary> + Time when the published item was created + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Updated"> + <summary> + Time when the published item was last updated + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPublic"> + <summary> + True if this is publically visible + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsFriendsOnly"> + <summary> + True if this item is only visible by friends of the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPrivate"> + <summary> + True if this is only visible to the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsBanned"> + <summary> + True if this item has been banned + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsAcceptedForUse"> + <summary> + Whether the developer of this app has specifically flagged this item as accepted in the Workshop + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesUp"> + <summary> + The number of upvotes of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesDown"> + <summary> + The number of downvotes of this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Download(System.Boolean)"> + <summary> + Start downloading this item. + If this returns false the item isn't getting downloaded. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesTotal"> + <summary> + If we're downloading, how big the total download is + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesDownloaded"> + <summary> + If we're downloading, how much we've downloaded + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.SizeBytes"> + <summary> + If we're installed, how big is the install + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadAmount"> + <summary> + If we're downloading our current progress as a delta betwen 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.HasTag(System.String)"> + <summary> + A case insensitive check for tag + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Subscribe"> + <summary> + Allows the user to subscribe to this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.DownloadAsync(System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Allows the user to subscribe to download this item asyncronously + If CancellationToken is default then there is 60 seconds timeout + Progress will be set to 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Unsubscribe"> + <summary> + Allows the user to unsubscribe from this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.AddFavorite"> + <summary> + Adds item to user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.RemoveFavorite"> + <summary> + Removes item from user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Vote(System.Boolean)"> + <summary> + Allows the user to rate a workshop item up or down. + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.GetUserVote"> + <summary> + Gets the current users vote on the item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Url"> + <summary> + Return a URL to view this item online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ChangelogUrl"> + <summary> + The URl to view this item's changelog + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CommentsUrl"> + <summary> + The URL to view the comments on this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DiscussUrl"> + <summary> + The URL to discuss this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.StatsUrl"> + <summary> + The URL to view this items stats online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.PreviewImageUrl"> + <summary> + The URL to the preview image for this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Edit"> + <summary> + Edit this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAnyTag"> + <summary> + Found items must have at least one of the defined tags + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAllTags"> + <summary> + Found items must have all defined tags + </summary> + </member> + <member name="P:Steamworks.Epoch.Current"> + <summary> + Returns the current Unix Epoch + </summary> + </member> + <member name="M:Steamworks.Epoch.ToDateTime(System.Decimal)"> + <summary> + Convert an epoch to a datetime + </summary> + </member> + <member name="M:Steamworks.Epoch.FromDateTime(System.DateTime)"> + <summary> + Convert a DateTime to a unix time + </summary> + </member> + <member name="M:Steamworks.Helpers.TakeBuffer(System.Int32)"> + <summary> + Returns a buffer. This will get returned and reused later on. + </summary> + </member> + <member name="T:Steamworks.PreserveAttribute"> + <summary> + Prevent unity from stripping shit we depend on + https://docs.unity3d.com/Manual/ManagedCodeStripping.html + </summary> + </member> + </members> +</doc> diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/README.md.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.xml.meta index 4fe525c..5e5f20c 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/README.md.meta +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Posix.xml.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a380fe31740b8a0419ed0d7bafe229bf +guid: f13b7820b3a9b6145a8ea48a92291748 TextScriptImporter: externalObjects: {} userData: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.dll b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.dll Binary files differnew file mode 100644 index 0000000..f7f75ea --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.dll diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/libsteam_api.so.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.dll.meta index f406ea5..c824695 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/libsteam_api.so.meta +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.dll.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 84c3b1e1d4f89ad42aca9ac3476a89f9 +guid: fb41692bc4208c0449c96c0576331408 PluginImporter: externalObjects: {} serializedVersion: 2 @@ -7,41 +7,52 @@ PluginImporter: executionOrder: {} defineConstraints: [] isPreloaded: 0 - isOverridable: 1 + isOverridable: 0 isExplicitlyReferenced: 0 validateReferences: 1 platformData: - first: - : Any + '': Any second: enabled: 0 settings: Exclude Editor: 0 - Exclude Linux64: 0 + Exclude Linux64: 1 Exclude OSXUniversal: 1 - Exclude WebGL: 1 Exclude Win: 0 - Exclude Win64: 0 + Exclude Win64: 1 - first: Any: second: - enabled: 0 + enabled: 1 settings: {} - first: Editor: Editor second: enabled: 1 settings: - CPU: x86_64 + CPU: x86 DefaultValueInitialized: true - OS: Linux + OS: Windows - first: - Standalone: Linux64 + Facebook: Win second: - enabled: 1 + enabled: 0 settings: CPU: AnyCPU - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: Standalone: OSXUniversal second: enabled: 0 @@ -52,13 +63,19 @@ PluginImporter: second: enabled: 1 settings: - CPU: None + CPU: AnyCPU - first: Standalone: Win64 second: - enabled: 1 + enabled: 0 settings: CPU: None + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU userData: assetBundleName: assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.pdb b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.pdb Binary files differnew file mode 100644 index 0000000..e8a9270 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.pdb diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/MacOS/libsteam_api.dylib.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.pdb.meta index 82cfe52..0d4f596 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/MacOS/libsteam_api.dylib.meta +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.pdb.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 86a6af8103340ea4a831e76b240601c0 +guid: 8b8e838f93aba6a47a16dbe26efbe02d DefaultImporter: externalObjects: {} userData: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.xml b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.xml new file mode 100644 index 0000000..176b6b1 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.xml @@ -0,0 +1,3474 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Facepunch.Steamworks.Win32</name> + </assembly> + <members> + <member name="T:Steamworks.CallResult`1"> + <summary> + An awaitable version of a SteamAPICall_t + </summary> + </member> + <member name="M:Steamworks.CallResult`1.OnCompleted(System.Action)"> + <summary> + This gets called if IsComplete returned false on the first call. + The Action "continues" the async call. We pass it to the Dispatch + to be called when the callback returns. + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetResult"> + <summary> + Gets the result. This is called internally by the async shit. + </summary> + </member> + <member name="P:Steamworks.CallResult`1.IsCompleted"> + <summary> + Return true if complete or failed + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetAwaiter"> + <summary> + This is what makes this struct awaitable + </summary> + </member> + <member name="T:Steamworks.ICallbackData"> + <summary> + Gives us a generic way to get the CallbackId of structs + </summary> + </member> + <member name="M:Steamworks.AuthTicket.Cancel"> + <summary> + Cancels a ticket. + You should cancel your ticket when you close the game or leave a server. + </summary> + </member> + <member name="T:Steamworks.Dispatch"> + <summary> + Responsible for all callback/callresult handling + + This manually pumps Steam's message queue and dispatches those + events to any waiting callbacks/callresults. + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnDebugCallback"> + <summary> + If set then we'll call this function every time a callback is generated. + + This is SLOW!! - it's for debugging - don't keep it on all the time. If you want to access a specific + callback then please create an issue on github and I'll add it! + + Params are : [Callback Type] [Callback Contents] [server] + + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnException"> + <summary> + Called if an exception happens during a callback/callresult. + This is needed because the exception isn't always accessible when running + async.. and can fail silently. With this hooked you won't be stuck wondering + what happened. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Init"> + <summary> + This gets called from Client/Server Init + It's important to switch to the manual dispatcher + </summary> + </member> + <member name="F:Steamworks.Dispatch.runningFrame"> + <summary> + Make sure we don't call Frame in a callback - because that'll cause some issues for everyone. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Frame(Steamworks.Data.HSteamPipe)"> + <summary> + Calls RunFrame and processes events from this Steam Pipe + </summary> + </member> + <member name="F:Steamworks.Dispatch.actionsToCall"> + <summary> + To be safe we don't call the continuation functions while iterating + the Callback list. This is maybe overly safe because the only way this + could be an issue is if the callback list is modified in the continuation + which would only happen if starting or shutting down in the callback. + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessCallback(Steamworks.Dispatch.CallbackMsg_t,System.Boolean)"> + <summary> + A callback is a general global message + </summary> + </member> + <member name="M:Steamworks.Dispatch.CallbackToString(Steamworks.CallbackType,System.IntPtr,System.Int32)"> + <summary> + Given a callback, try to turn it into a string + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessResult(Steamworks.Dispatch.CallbackMsg_t)"> + <summary> + A result is a reply to a specific command + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopClientAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopServerAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.OnCallComplete``1(Steamworks.Data.SteamAPICall_t,System.Action,System.Boolean)"> + <summary> + Watch for a steam api call + </summary> + </member> + <member name="M:Steamworks.Dispatch.Install``1(System.Action{``0},System.Boolean)"> + <summary> + Install a global callback. The passed function will get called if it's all good. + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.Numeric"> + <summary> + The score is just a simple numerical value + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeSeconds"> + <summary> + The score represents a time, in seconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeMilliSeconds"> + <summary> + The score represents a time, in milliseconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Ascending"> + <summary> + The top-score is the lowest number + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Descending"> + <summary> + The top-score is the highest number + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Unreliable"> + <summary> + Send the message unreliably. Can be lost. Messages *can* be larger than a + single MTU (UDP packet), but there is no retransmission, so if any piece + of the message is lost, the entire message will be dropped. + + The sending API does have some knowledge of the underlying connection, so + if there is no NAT-traversal accomplished or there is a recognized adjustment + happening on the connection, the packet will be batched until the connection + is open again. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoNagle"> + <summary> + Disable Nagle's algorithm. + By default, Nagle's algorithm is applied to all outbound messages. This means + that the message will NOT be sent immediately, in case further messages are + sent soon after you send this, which can be grouped together. Any time there + is enough buffered data to fill a packet, the packets will be pushed out immediately, + but partially-full packets not be sent until the Nagle timer expires. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoDelay"> + <summary> + If the message cannot be sent very soon (because the connection is still doing some initial + handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable + messages. Using this flag on reliable messages is invalid. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Reliable"> + Reliable message send. Can send up to 0.5mb in a single message. + Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for + efficient sends of large chunks of data. + </member> + <member name="P:Steamworks.Data.NetIdentity.LocalHost"> + <summary> + Return a NetIdentity that represents LocalHost + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.IsLocalHost"> + <summary> + Return true if this identity is localhost + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.SteamId)~Steamworks.Data.NetIdentity"> + <summary> + Convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetAddress)~Steamworks.Data.NetIdentity"> + <summary> + Set the specified Address + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetIdentity)~Steamworks.SteamId"> + <summary> + Automatically convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="P:Steamworks.Data.NetIdentity.SteamId"> + <summary> + Returns NULL if we're not a SteamId + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.Address"> + <summary> + Returns NULL if we're not a NetAddress + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.ToString"> + <summary> + We override tostring to provide a sensible representation + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Port"> + <summary> + The Port. This is redundant documentation. + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.AnyIp(System.UInt16)"> + <summary> + Any IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.LocalHost(System.UInt16)"> + <summary> + Localhost IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.String,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.Net.IPAddress,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Cleared"> + <summary> + Set everything to zero + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv6AllZeros"> + <summary> + Return true if the IP is ::0. (Doesn't check port.) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv4"> + <summary> + Return true if IP is mapped IPv4 + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsLocalHost"> + <summary> + Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Address"> + <summary> + Get the Address section + </summary> + </member> + <member name="T:Steamworks.Data.Connection"> + <summary> + Used as a base to create your client connection. This creates a socket + to a single connection. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Accept"> + <summary> + Accept an incoming connection that has been received on a listen socket. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Close(System.Boolean,System.Int32,System.String)"> + <summary> + Disconnects from the remote host and invalidates the connection handle. Any unread data on the connection is discarded.. + reasonCode is defined and used by you. + </summary> + </member> + <member name="P:Steamworks.Data.Connection.UserData"> + <summary> + Get/Set connection user data + </summary> + </member> + <member name="P:Steamworks.Data.Connection.ConnectionName"> + <summary> + A name for the connection, used mostly for debugging + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.IntPtr,System.Int32,Steamworks.Data.SendType)"> + <summary> + This is the best version to use. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],System.Int32,System.Int32,Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.String,Steamworks.Data.SendType)"> + <summary> + This creates a ton of garbage - so don't do anything with this beyond testing! + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Flush"> + <summary> + Flush any messages waiting on the Nagle timer and send them at the next transmission + opportunity (often that means right now). + </summary> + </member> + <member name="M:Steamworks.Data.Connection.DetailedStatus"> + <summary> + Returns detailed connection stats in text format. Useful + for dumping to a log, etc. + </summary> + <returns>Plain text connection info</returns> + </member> + <member name="T:Steamworks.Data.ConnectionInfo"> + <summary> + Describe the state of a connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.State"> + <summary> + High level state of the connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Address"> + <summary> + Remote address. Might be all 0's if we don't know it, or if this is N/A. + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Identity"> + <summary> + Who is on the other end? Depending on the connection type and phase of the connection, we might not know + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.EndReason"> + <summary> + Basic cause of the connection termination or problem. + </summary> + </member> + <member name="T:Steamworks.Data.NetPingLocation"> + <summary> + + Object that describes a "location" on the Internet with sufficient + detail that we can reasonably estimate an upper bound on the ping between + the two hosts, even if a direct route between the hosts is not possible, + and the connection must be routed through the Steam Datagram Relay network. + This does not contain any information that identifies the host. Indeed, + if two hosts are in the same building or otherwise have nearly identical + networking characteristics, then it's valid to use the same location + object for both of them. + + NOTE: This object should only be used in the same process! Do not serialize it, + send it over the wire, or persist it in a file or database! If you need + to do that, convert it to a string representation using the methods in + ISteamNetworkingUtils(). + + </summary> + </member> + <member name="M:Steamworks.Data.NetPingLocation.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + Estimate the round-trip latency between two arbitrary locations, in + milliseconds. This is a conservative estimate, based on routing through + the relay network. For most basic relayed connections, this ping time + will be pretty accurate, since it will be based on the route likely to + be actually used. + + If a direct IP route is used (perhaps via NAT traversal), then the route + will be different, and the ping time might be better. Or it might actually + be a bit worse! Standard IP routing is frequently suboptimal! + + But even in this case, the estimate obtained using this method is a + reasonable upper bound on the ping time. (Also it has the advantage + of returning immediately and not sending any packets.) + + In a few cases we might not able to estimate the route. In this case + a negative value is returned. k_nSteamNetworkingPing_Failed means + the reason was because of some networking difficulty. (Failure to + ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + currently answer the question for some other reason. + + Do you need to be able to do this from a backend/matchmaking server? + You are looking for the "ticketgen" library. + </member> + <member name="M:Steamworks.Data.Socket.Close"> + <summary> + Destroy a listen socket. All the connections that were accepting on the listen + socket are closed ungracefully. + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.State"> + <summary> + True if unlocked + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.UnlockTime"> + <summary> + Should hold the unlock time if State is true + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIcon"> + <summary> + Gets the icon of the achievement. This can return a null image even though the image exists if the image + hasn't been downloaded by Steam yet. You can use GetIconAsync if you want to wait for the image to be downloaded. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIconAsync(System.Int32)"> + <summary> + Gets the icon of the achievement, waits for it to load if we have to + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.GlobalUnlocked"> + <summary> + Returns the fraction (0-1) of users who have unlocked the specified achievement, or -1 if no data available. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Trigger(System.Boolean)"> + <summary> + Make this achievement earned + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Clear"> + <summary> + Reset this achievement to not achieved + </summary> + </member> + <member name="T:Steamworks.Data.DurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Appid"> + <summary> + appid generating playtime + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Applicable"> + <summary> + is duration control applicable to user + game combination + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeInLastFiveHours"> + <summary> + playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeToday"> + <summary> + playtime on current calendar day + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Progress"> + <summary> + recommended progress + </summary> + </member> + <member name="P:Steamworks.Data.Leaderboard.Name"> + <summary> + the name of a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.ReplaceScore(System.Int32,System.Int32[])"> + <summary> + Submit your score and replace your old score even if it was better + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.SubmitScoreAsync(System.Int32,System.Int32[])"> + <summary> + Submit your new score, but won't replace your high score if it's lower + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.AttachUgc(Steamworks.Data.Ugc)"> + <summary> + Attaches a piece of user generated content the user's entry on a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAsync(System.Int32,System.Int32)"> + <summary> + Used to query for a sequential range of leaderboard entries by leaderboard Sort. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAroundUserAsync(System.Int32,System.Int32)"> + <summary> + Used to retrieve leaderboard entries relative a user's entry. If there are not enough entries in the leaderboard + before or after the user's entry, Steam will adjust the range to try to return the number of entries requested. + For example, if the user is #1 on the leaderboard and start is set to -2, end is set to 2, Steam will return the first + 5 entries in the leaderboard. If The current user has no entry, this will return null. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresFromFriendsAsync"> + <summary> + Used to retrieve all leaderboard entries for friends of the current user + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Join"> + <summary> + Try to join this room. Will return RoomEnter.Success on success, + and anything else is a failure + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Leave"> + <summary> + Leave a lobby; this will take effect immediately on the client side + other users in the lobby will be notified by a LobbyChatUpdate_t callback + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.InviteFriend(Steamworks.SteamId)"> + <summary> + Invite another user to the lobby + will return true if the invite is successfully sent, whether or not the target responds + returns false if the local user is not connected to the Steam servers + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MemberCount"> + <summary> + returns the number of users in the specified lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Members"> + <summary> + Returns current members. Need to be in the lobby to see the users. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetData(System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetData(System.String,System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.DeleteData(System.String)"> + <summary> + Removes a metadata key from the lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Data"> + <summary> + Get all data for this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetMemberData(Steamworks.Friend,System.String)"> + <summary> + Gets per-user metadata for someone in this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetMemberData(System.String,System.String)"> + <summary> + Sets per-user metadata (for the local user implicitly) + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatString(System.String)"> + <summary> + Sends a string to the chat room + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatBytes(System.Byte[])"> + <summary> + Sends bytes the the chat room + this isn't exposed because there's no way to read raw bytes atm, + and I figure people can send json if they want something more advanced + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Refresh"> + <summary> + Refreshes metadata for a lobby you're not necessarily in right now + you never do this for lobbies you're a member of, only if your + this will send down all the metadata associated with a lobby + this is an asynchronous call + returns false if the local user is not connected to the Steam servers + results will be returned by a LobbyDataUpdate_t callback + if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MaxMembers"> + <summary> + Max members able to join this lobby. Cannot be over 250. + Can only be set by the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(Steamworks.SteamId)"> + <summary> + [SteamID variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(System.String,System.UInt16)"> + <summary> + [IP/Port variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetGameServer(System.UInt32@,System.UInt16@,Steamworks.SteamId@)"> + <summary> + Gets the details of the lobby's game server, if set. Returns true if the lobby is + valid and has a server set, otherwise returns false. + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Owner"> + <summary> + You must be the lobby owner to set the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.IsOwnedBy(Steamworks.SteamId)"> + <summary> + Check if the specified SteamId owns the lobby + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceClose"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceFar"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceWorldwide"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithKeyValue(System.String,System.String)"> + <summary> + Filter by specified key/value pair; string parameters + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithLower(System.String,System.Int32)"> + <summary> + Numerical filter where value is less than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithHigher(System.String,System.Int32)"> + <summary> + Numerical filter where value is greater than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must be equal to the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithNotEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must not equal the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.AddNumericalFilter(System.String,System.Int32,Steamworks.LobbyComparison)"> + <summary> + Test key, initialize numerical filter list if necessary, then add new numerical filter + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.OrderByNear(System.String,System.Int32)"> + <summary> + Order filtered results according to key/values nearest the provided key/value pair. + Can specify multiple near value filters; each successive filter is lower priority than the previous. + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithSlotsAvailable(System.Int32)"> + <summary> + returns only lobbies with the specified number of slots available + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithMaxResults(System.Int32)"> + <summary> + sets how many results to return, the lower the count the faster it is to download the lobby results + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.RequestAsync"> + <summary> + Run the query, get the matching lobbies + </summary> + </member> + <member name="T:Steamworks.Data.OutgoingPacket"> + <summary> + A server query packet. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Address"> + <summary> + Target IP address + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Port"> + <summary> + Target port + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Data"> + <summary> + This data is pooled. Make a copy if you don't use it immediately. + This buffer is also quite large - so pay attention to Size. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Size"> + <summary> + Size of the data + </summary> + </member> + <member name="T:Steamworks.Data.RemotePlaySession"> + <summary> + Represents a RemotePlaySession from the SteamRemotePlay interface + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.IsValid"> + <summary> + Returns true if this session was valid when created. This will stay true even + after disconnection - so be sure to watch SteamRemotePlay.OnSessionDisconnected + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.SteamId"> + <summary> + Get the SteamID of the connected user + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.ClientName"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.FormFactor"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagUser(Steamworks.SteamId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.SetLocation(System.String)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagPublishedFile(Steamworks.Data.PublishedFileId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="P:Steamworks.Data.ServerInfo.Tags"> + <summary> + Gets the individual tags for this server + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToHistory"> + <summary> + Add this server to our history list + If we're already in the history list, weill set the last played time to now + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.QueryRulesAsync"> + <summary> + If this server responds to source engine style queries, we'll be able to get a list of rules here + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromHistory"> + <summary> + Remove this server from our history list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToFavourites"> + <summary> + Add this server to our favourite list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromFavourites"> + <summary> + Remove this server from our favourite list + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultStatus(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Find out the status of an asynchronous inventory result handle. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultItems(Steamworks.Data.SteamInventoryResult_t,Steamworks.Data.SteamItemDetails_t[],System.UInt32@)"> + <summary> + Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultTimestamp(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.CheckResultSteamID(Steamworks.Data.SteamInventoryResult_t,Steamworks.SteamId)"> + <summary> + Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.DestroyResult(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Destroys a result handle and frees all associated memory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetAllItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + Captures the entire state of the current users Steam inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetItemsByID(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId@,System.UInt32)"> + <summary> + Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GrantPromoItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only). + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.ConsumeItem(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId,System.UInt32)"> + <summary> + ConsumeItem() removes items from the inventory permanently. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.SendItemDropHeartbeat"> + <summary> + Deprecated method. Playtime accounting is performed on the Steam servers. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.TriggerItemDrop(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryDefId)"> + <summary> + Playtime credit must be consumed and turned into item drops by your game. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.LoadItemDefinitions"> + <summary> + LoadItemDefinitions triggers the automatic load and refresh of item definitions. + </summary> + </member> + <member name="M:Steamworks.ISteamUserStats.DownloadLeaderboardEntriesForUsers(Steamworks.Data.SteamLeaderboard_t,Steamworks.SteamId[],System.Int32)"> + <summary> + Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.Interface"> + <summary> + An optional interface to use instead of deriving + </summary> + </member> + <member name="F:Steamworks.ConnectionManager.Connection"> + <summary> + The actual connection we're managing + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.ConnectionInfo"> + <summary> + The last received ConnectionInfo + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We're trying to connect! + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We started connecting to this guy + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + We got disconnected + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnMessage(System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Must call Accept or Close on the connection within a second or so + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection leaves + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnMessage(Steamworks.Data.Connection,Steamworks.Data.NetIdentity,System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message from a connection + </summary> + </member> + <member name="T:Steamworks.SocketManager"> + <summary> + Used as a base to create your networking server. This creates a socket + and listens/communicates with multiple queries. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Default behaviour is to accept every connection + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="P:Steamworks.ServerList.Base.AppId"> + <summary> + Which app we're querying. Defaults to the current app. + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnChanges"> + <summary> + When a new server is added, this function will get called + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnResponsiveServer"> + <summary> + Called for every responsive server + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Responsive"> + <summary> + A list of servers that responded. If you're only interested in servers that responded since you + last updated, then simply clear this list. + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Unresponsive"> + <summary> + A list of servers that were in the master list but didn't respond. + </summary> + </member> + <member name="M:Steamworks.ServerList.Base.RunQueryAsync(System.Single)"> + <summary> + Query the server list. Task result will be true when finished + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamApps"> + <summary> + Exposes a wide range of information and actions for applications and Downloadable Content (DLC). + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnDlcInstalled"> + <summary> + posted after the user gains ownership of DLC and that DLC is installed + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnNewLaunchParameters"> + <summary> + posted after the user gains executes a Steam URL with command line or query parameters + such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc + while the game is already running. The new params can be queried + with GetLaunchQueryParam and GetLaunchCommandLine + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribed"> + <summary> + Checks if the active user is subscribed to the current App ID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFamilySharing"> + <summary> + Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsLowVoilence"> + <summary> + Checks if the license owned by the user provides low violence depots. + Low violence depots are useful for copies sold in countries that have content restrictions + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsCybercafe"> + <summary> + Checks whether the current App ID license is for Cyber Cafes. + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsVACBanned"> + <summary> + CChecks if the user has a VAC ban on their account + </summary> + </member> + <member name="P:Steamworks.SteamApps.GameLanguage"> + <summary> + Gets the current language that the user has set. + This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AvailableLanguages"> + <summary> + Gets a list of the languages the current app supports. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsSubscribedToApp(Steamworks.AppId)"> + <summary> + Checks if the active user is subscribed to a specified AppId. + Only use this if you need to check ownership of another game related to yours, a demo for example. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsDlcInstalled(Steamworks.AppId)"> + <summary> + Checks if the user owns a specific DLC and if the DLC is installed + </summary> + </member> + <member name="M:Steamworks.SteamApps.PurchaseTime(Steamworks.AppId)"> + <summary> + Returns the time of the purchase of the app + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFreeWeekend"> + <summary> + Checks if the user is subscribed to the current app through a free weekend + This function will return false for users who have a retail or other type of license + Before using, please ask your Valve technical contact how to package and secure your free weekened + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcInformation"> + <summary> + Returns metadata for all available DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.UninstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="P:Steamworks.SteamApps.CurrentBetaName"> + <summary> + Returns null if we're not on a beta branch, else the name of the branch + </summary> + </member> + <member name="M:Steamworks.SteamApps.MarkContentCorrupt(System.Boolean)"> + <summary> + Allows you to force verify game content on next launch. + + If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), + you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit. + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstalledDepots(Steamworks.AppId)"> + <summary> + Gets a list of all installed depots for a given App ID in mount order + </summary> + </member> + <member name="M:Steamworks.SteamApps.AppInstallDir(Steamworks.AppId)"> + <summary> + Gets the install folder for a specific AppID. + This works even if the application is not installed, based on where the game would be installed with the default Steam library location. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsAppInstalled(Steamworks.AppId)"> + <summary> + The app may not actually be owned by the current user, they may have it left over from a free weekend, etc. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AppOwner"> + <summary> + Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed.. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetLaunchParam(System.String)"> + <summary> + Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. + Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. + Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + but it is advised that you not param names beginning with an underscore for your own features. + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcDownloadProgress(Steamworks.AppId)"> + <summary> + Gets the download progress for optional DLC. + </summary> + </member> + <member name="P:Steamworks.SteamApps.BuildId"> + <summary> + Gets the buildid of this app, may change at any time based on backend updates to the game. + Defaults to 0 if you're not running a build downloaded from steam. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetFileDetailsAsync(System.String)"> + <summary> + Asynchronously retrieves metadata details about a specific file in the depot manifest. + Currently provides: + </summary> + </member> + <member name="P:Steamworks.SteamApps.CommandLine"> + <summary> + Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. + This method of passing a connect string (used when joining via rich presence, accepting an + invite, etc) is preferable to passing the connect string on the operating system command + line, which is a security risk. In order for rich presence joins to go through this + path and not be placed on the OS command line, you must set a value in your app's + configuration on Steam. Ask Valve for help with this. + </summary> + </member> + <member name="M:Steamworks.SteamClient.Init(System.UInt32,System.Boolean)"> + <summary> + Initialize the steam client. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="P:Steamworks.SteamClient.IsLoggedOn"> + <summary> + Checks if the current user's Steam client is connected to the Steam servers. + If it's not then no real-time services provided by the Steamworks API will be enabled. The Steam + client will automatically be trying to recreate the connection as often as possible. When the + connection is restored a SteamServersConnected_t callback will be posted. + You usually don't need to check for this yourself. All of the API calls that rely on this will + check internally. Forcefully disabling stuff when the player loses access is usually not a + very good experience for the player and you could be preventing them from accessing APIs that do not + need a live connection to Steam. + </summary> + </member> + <member name="P:Steamworks.SteamClient.SteamId"> + <summary> + Gets the Steam ID of the account currently logged into the Steam client. This is + commonly called the 'current user', or 'local user'. + A Steam ID is a unique identifier for a Steam accounts, Steam groups, Lobbies and Chat + rooms, and used to differentiate users in all parts of the Steamworks API. + </summary> + </member> + <member name="P:Steamworks.SteamClient.Name"> + <summary> + returns the local players name - guaranteed to not be NULL. + this is the same name as on the users community profile page + </summary> + </member> + <member name="P:Steamworks.SteamClient.State"> + <summary> + gets the status of the current user + </summary> + </member> + <member name="P:Steamworks.SteamClient.AppId"> + <summary> + returns the appID of the current process + </summary> + </member> + <member name="M:Steamworks.SteamClient.RestartAppIfNecessary(System.UInt32)"> + <summary> + Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't + this returns true then it starts the Steam client if required and launches your game again through it, + and you should quit your process as soon as possible. This effectively runs steam://run/AppId so it + may not relaunch the exact executable that called it, as it will always relaunch from the version + installed in your Steam library folder/ + Note that during development, when not launching via Steam, this might always return true. + </summary> + </member> + <member name="M:Steamworks.SteamClient.ValidCheck"> + <summary> + Called in interfaces that rely on this being initialized + </summary> + </member> + <member name="T:Steamworks.SteamFriends"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnChatMessage"> + <summary> + Called when chat message has been received from a friend. You'll need to turn on + ListenForFriendsMessages to recieve this. (friend, msgtype, message) + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnPersonaStateChange"> + <summary> + called when a friends' status changes + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameRichPresenceJoinRequested"> + <summary> + Called when the user tries to join a game from their friends list + rich presence will have been set with the "connect" key which is set here + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameOverlayActivated"> + <summary> + Posted when game overlay activates or deactivates + the game can use this to be pause or resume single player games + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameServerChangeRequested"> + <summary> + Called when the user tries to join a different game server from their friends list + game client should attempt to connect to specified server when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameLobbyJoinRequested"> + <summary> + Called when the user tries to join a lobby from their friends list + game client should attempt to connect to specified lobby when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnFriendRichPresenceUpdate"> + <summary> + Callback indicating updated data about friends rich presence information + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenOverlay(System.String)"> + <summary> + The dialog to open. Valid options are: + "friends", + "community", + "players", + "settings", + "officialgamegroup", + "stats", + "achievements". + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenUserOverlay(Steamworks.SteamId,System.String)"> + <summary> + "steamid" - Opens the overlay web browser to the specified user or groups profile. + "chat" - Opens a chat window to the specified user, or joins the group chat. + "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API. + "stats" - Opens the overlay web browser to the specified user's stats. + "achievements" - Opens the overlay web browser to the specified user's achievements. + "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend. + "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend. + "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite. + "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenStoreOverlay(Steamworks.AppId)"> + <summary> + Activates the Steam Overlay to the Steam store page for the provided app. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenWebOverlay(System.String,System.Boolean)"> + <summary> + Activates Steam Overlay web browser directly to the specified URL. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenGameInviteOverlay(Steamworks.SteamId)"> + <summary> + Activates the Steam Overlay to open the invite dialog. Invitations sent from this dialog will be for the provided lobby. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetPlayedWith(Steamworks.SteamId)"> + <summary> + Mark a target user as 'played with'. + NOTE: The current user must be in game with the other player for the association to work. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.RequestUserInformation(Steamworks.SteamId,System.Boolean)"> + <summary> + Requests the persona name and optionally the avatar of a specified user. + NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them. + returns true if we're fetching the data, false if we already have it + </summary> + </member> + <member name="M:Steamworks.SteamFriends.GetRichPresence(System.String)"> + <summary> + Find a rich presence value by key for current user. Will be null if not found. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetRichPresence(System.String,System.String)"> + <summary> + Sets a rich presence value by key for current user. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.ClearRichPresence"> + <summary> + Clears all of the current user's rich presence data. + </summary> + </member> + <member name="P:Steamworks.SteamFriends.ListenForFriendsMessages"> + <summary> + Listens for Steam friends chat messages. + You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. + After enabling this you will receive callbacks when ever the user receives a chat message. + </summary> + </member> + <member name="M:Steamworks.SteamInput.RunFrame"> + <summary> + You shouldn't really need to call this because it get called by RunCallbacks on SteamClient + but Valve think it might be a nice idea if you call it right before you get input info - + just to make sure the info you're getting is 100% up to date. + </summary> + </member> + <member name="P:Steamworks.SteamInput.Controllers"> + <summary> + Return a list of connected controllers. + </summary> + </member> + <member name="M:Steamworks.SteamInput.GetDigitalActionGlyph(Steamworks.Controller,System.String)"> + <summary> + Return an absolute path to the PNG image glyph for the provided digital action name. The current + action set in use for the controller will be used for the lookup. You should cache the result and + maintain your own list of loaded PNG assets. + </summary> + <param name="controller"></param> + <param name="action"></param> + <returns></returns> + </member> + <member name="T:Steamworks.SteamInventory"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamInventory.LoadItemDefinitions"> + <summary> + Call this if you're going to want to access definition information. You should be able to get + away with calling this once at the start if your game, assuming your items don't change all the time. + This will trigger OnDefinitionsUpdated at which point Definitions should be set. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.WaitForDefinitions(System.Single)"> + <summary> + Will call LoadItemDefinitions and wait until Definitions is not null + </summary> + </member> + <member name="M:Steamworks.SteamInventory.FindDefinition(Steamworks.Data.InventoryDefId)"> + <summary> + Try to find the definition that matches this definition ID. + Uses a dictionary so should be about as fast as possible. + </summary> + </member> + <member name="P:Steamworks.SteamInventory.Items"> + <summary> + We will try to keep this list of your items automatically up to date. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItems"> + <summary> + Update the list of Items[] + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItemsAsync"> + <summary> + Get all items and return the InventoryResult + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GenerateItemAsync(Steamworks.InventoryDef,System.Int32)"> + <summary> + This is used to grant a specific item to the user. This should + only be used for development prototyping, from a trusted server, + or if you don't care about hacked clients granting arbitrary items. + This call can be disabled by a setting on Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem.Amount[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.DeserializeAsync(System.Byte[],System.Int32)"> + <summary> + Deserializes a result set and verifies the signature bytes. + This call has a potential soft-failure mode where the Result is expired, it will + still succeed in this mode.The "expired" + result could indicate that the data may be out of date - not just due to timed + expiration( one hour ), but also because one of the items in the result set may + have been traded or consumed since the result set was generated.You could compare + the timestamp from GetResultTimestamp to ISteamUtils::GetServerRealTime to determine + how old the data is. You could simply ignore the "expired" result code and + continue as normal, or you could request the player with expired data to send + an updated result set. + You should call CheckResultSteamID on the result handle when it completes to verify + that a remote player is not pretending to have a different user's inventory. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GrantPromoItemsAsync"> + <summary> + Grant all promotional items the user is eligible for + </summary> + </member> + <member name="M:Steamworks.SteamInventory.TriggerItemDropAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger an item drop for this user. This is for timed drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.AddPromoItemAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger a promo item drop. You can call this at startup, it won't + give users multiple promo drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.StartPurchaseAsync(Steamworks.InventoryDef[])"> + <summary> + Start buying a cart load of items. This will return a positive result is the purchase has + begun. You should listen out for SteamUser.OnMicroTxnAuthorizationResponse for a success. + </summary> + </member> + <member name="T:Steamworks.SteamMatchmaking"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="P:Steamworks.SteamMatchmaking.MaxLobbyKeyLength"> + <summary> + Maximum number of characters a lobby metadata key can be + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyInvite"> + <summary> + Someone invited you to a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyEntered"> + <summary> + You joined a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyCreated"> + <summary> + You created a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyGameCreated"> + <summary> + A game server has been associated with the lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyDataChanged"> + <summary> + The lobby metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDataChanged"> + <summary> + The lobby member metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberJoined"> + <summary> + The lobby member joined + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberLeave"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDisconnected"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberKicked"> + <summary> + The lobby member was kicked. The 3rd param is the user that kicked them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberBanned"> + <summary> + The lobby member was banned. The 3rd param is the user that banned them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnChatMessage"> + <summary> + A chat message was recieved from a member of a lobby + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.CreateLobbyAsync(System.Int32)"> + <summary> + Creates a new invisible lobby. Call lobby.SetPublic to take it online. + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.JoinLobbyAsync(Steamworks.SteamId)"> + <summmary> + Attempts to directly join the specified lobby + </summmary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetFavoriteServers"> + <summary> + Get a list of servers that are on your favorites list + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetHistoryServers"> + <summary> + Get a list of servers that you have added to your play history + </summary> + </member> + <member name="T:Steamworks.SteamMatchmakingServers"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="T:Steamworks.SteamMusic"> + <summary> + Functions to control music playback in the steam client. + This gives games the opportunity to do things like pause the music or lower the volume, + when an important cut scene is shown, and start playing afterwards. + Nothing uses Steam Music though so this can probably get fucked + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnPlaybackChanged"> + <summary> + Playback status changed + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnVolumeChanged"> + <summary> + Volume changed, parameter is new volume + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsEnabled"> + <summary> + Checks if Steam Music is enabled + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsPlaying"> + <summary> + true if a song is currently playing, paused, or queued up to play; otherwise false. + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Status"> + <summary> + Gets the current status of the Steam Music player + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayPrevious"> + <summary> + Have the Steam Music player play the previous song. + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayNext"> + <summary> + Have the Steam Music player skip to the next song + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Volume"> + <summary> + Gets/Sets the current volume of the Steam Music player + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PSessionRequest"> + <summary> + This SteamId wants to send you a message. You should respond by calling AcceptP2PSessionWithUser + if you want to recieve their messages + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PConnectionFailed"> + <summary> + Called when packets can't get through to the specified user. + All queued packets unsent at this point will be dropped, further attempts + to send will retry making the connection (but will be dropped if we fail again). + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AcceptP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called in response to a OnP2PSessionRequest + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AllowP2PPacketRelay(System.Boolean)"> + <summary> + Allow or disallow P2P connects to fall back on Steam server relay if direct + connection or NAT traversal can't be established. Applies to connections + created after setting or old connections that need to reconnect. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.CloseP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called when you're done communicating with a user, as this will + free up all of the resources allocated for the connection under-the-hood. + If the remote user tries to send data to you again, a new OnP2PSessionRequest + callback will be posted + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.IsP2PPacketAvailable(System.Int32)"> + <summary> + Checks if a P2P packet is available to read, and gets the size of the message if there is one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte[],System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte*,System.UInt32,System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte[],System.Int32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte*,System.UInt32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket``1(Steamworks.Data.NetAddress)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6) + + To use this derive a class from SocketManager and override as much as you want. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket(Steamworks.Data.NetAddress,Steamworks.ISocketManager)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6). + + To use this you should pass a class that inherits ISocketManager. You can use + SocketManager to get connections and send messages, but the ISocketManager class + will received all the appropriate callbacks. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal``1(Steamworks.Data.NetAddress)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal(Steamworks.Data.NetAddress,Steamworks.IConnectionManager)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateRelaySocket``1(System.Int32)"> + <summary> + Creates a server that will be relayed via Valve's network (hiding the IP and improving ping) + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectRelay``1(Steamworks.SteamId,System.Int32)"> + <summary> + Connect to a relay server + </summary> + </member> + <member name="T:Steamworks.SteamNetworkingUtils"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamNetworkingUtils.OnDebugOutput"> + <summary> + A function to receive debug network information on. This will do nothing + unless you set DebugLevel to something other than None. + + You should set this to an appropriate level instead of setting it to the highest + and then filtering it by hand because a lot of energy is used by creating the strings + and your frame rate will tank and you won't know why. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Status"> + <summary> + The latest available status gathered from the SteamRelayNetworkStatus callback + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.InitRelayNetworkAccess"> + <summary> + If you know that you are going to be using the relay network (for example, + because you anticipate making P2P connections), call this to initialize the + relay network. If you do not call this, the initialization will + be delayed until the first time you use a feature that requires access + to the relay network, which will delay that first access. + + You can also call this to force a retry if the previous attempt has failed. + Performing any action that requires access to the relay network will also + trigger a retry, and so calling this function is never strictly necessary, + but it can be useful to call it a program launch time, if access to the + relay network is anticipated. + + Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + callbacks to know when initialization has completed. + Typically initialization completes in a few seconds. + + Note: dedicated servers hosted in known data centers do *not* need + to call this, since they do not make routing decisions. However, if + the dedicated server will be using P2P functionality, it will act as + a "client" and this should be called. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.LocalPingLocation"> + <summary> + Return location info for the current host. + + It takes a few seconds to initialize access to the relay network. If + you call this very soon after startup the data may not be available yet. + + This always return the most up-to-date information we have available + right now, even if we are in the middle of re-calculating ping times. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + <summary> + Same as PingLocation.EstimatePingTo, but assumes that one location is the local host. + This is a bit faster, especially if you need to calculate a bunch of + these in a loop to find the fastest one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.WaitForPingDataAsync(System.Single)"> + <summary> + If you need ping information straight away, wait on this. It will return + immediately if you already have up to date ping data + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.ConnectionTimeout"> + <summary> + Timeout value (in ms) to use when first connecting + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Timeout"> + <summary> + Timeout value (in ms) to use after connection is established + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.SendBufferSize"> + <summary> + Upper limit of buffered pending bytes to be sent. + If this is reached SendMessage will return LimitExceeded. + Default is 524288 bytes (512k) + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.DebugLevel"> + <summary> + Get Debug Information via OnDebugOutput event + + Except when debugging, you should only use NetDebugOutput.Msg + or NetDebugOutput.Warning. For best performance, do NOT + request a high detail level and then filter out messages in the callback. + + This incurs all of the expense of formatting the messages, which are then discarded. + Setting a high priority value (low numeric value) here allows the library to avoid + doing this work. + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugLevel"> + <summary> + So we can remember and provide a Get for DebugLEvel + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugFunc"> + <summary> + We need to keep the delegate around until it's not used anymore + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OnDebugMessage(Steamworks.NetDebugOutput,System.IntPtr)"> + <summary> + This can be called from other threads - so we're going to queue these up and process them in a safe place. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OutputDebugMessages"> + <summary> + Called regularly from the Dispatch loop so we can provide a timely + stream of messages. + </summary> + </member> + <member name="T:Steamworks.SteamParental"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamParental.OnSettingsChanged"> + <summary> + Parental Settings Changed + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockEnabled"> + <summary> + + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockLocked"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsAppBlocked(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsAppInBlockList(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsFeatureBlocked(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsFeatureInBlockList(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="T:Steamworks.SteamParties"> + <summary> + This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. + Tell Steam the number of player spots that are available for your party, and a join-game string, and it + will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. + Adjust the number of open slots if other players join through alternate matchmaking methods. + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnBeaconLocationsUpdated"> + <summary> + The list of possible Party beacon locations has changed + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnActiveBeaconsUpdated"> + <summary> + The list of active beacons may have changed + </summary> + </member> + <member name="T:Steamworks.SteamRemotePlay"> + <summary> + Functions that provide information about Steam Remote Play sessions, streaming your game content to another computer or to a Steam Link app or hardware. + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionConnected"> + <summary> + Called when a session is connected + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionDisconnected"> + <summary> + Called when a session becomes disconnected + </summary> + </member> + <member name="P:Steamworks.SteamRemotePlay.SessionCount"> + <summary> + Get the number of currently connected Steam Remote Play sessions + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.GetSession(System.Int32)"> + <summary> + Get the currently connected Steam Remote Play session ID at the specified index. + IsValid will return false if it's out of bounds + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.SendInvite(Steamworks.SteamId)"> + <summary> + Invite a friend to Remote Play Together + This returns false if the invite can't be sent + </summary> + </member> + <member name="T:Steamworks.SteamRemoteStorage"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileWrite(System.String,System.Byte[])"> + <summary> + Creates a new file, writes the bytes to the file, and then closes the file. + If the target file already exists, it is overwritten + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileRead(System.String)"> + <summary> + Opens a binary file, reads the contents of the file into a byte array, and then closes the file. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileExists(System.String)"> + <summary> + Checks whether the specified file exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FilePersisted(System.String)"> + <summary> + Checks if a specific file is persisted in the steam cloud. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileTime(System.String)"> + <summary> + Gets the specified file's last modified date/time. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileSize(System.String)"> + <summary> + Gets the specified files size in bytes. 0 if not exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileForget(System.String)"> + <summary> + Deletes the file from remote storage, but leaves it on the local disk and remains accessible from the API. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileDelete(System.String)"> + <summary> + Deletes a file from the local disk, and propagates that delete to the cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaBytes"> + <summary> + Number of bytes total + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaUsedBytes"> + <summary> + Number of bytes used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaRemainingBytes"> + <summary> + Number of bytes remaining until your quota is used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabled"> + <summary> + returns true if IsCloudEnabledForAccount AND IsCloudEnabledForApp + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForAccount"> + <summary> + Checks if the account wide Steam Cloud setting is enabled for this user + or if they disabled it in the Settings->Cloud dialog. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForApp"> + <summary> + Checks if the per game Steam Cloud setting is enabled for this user + or if they disabled it in the Game Properties->Update dialog. + + This must only ever be set as the direct result of the user explicitly + requesting that it's enabled or not. This is typically accomplished with + a checkbox within your in-game options + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.FileCount"> + <summary> + Gets the total number of local files synchronized by Steam Cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.Files"> + <summary> + Get a list of filenames synchronized by Steam Cloud + </summary> + </member> + <member name="T:Steamworks.SteamScreenshots"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotRequested"> + <summary> + A screenshot has been requested by the user from the Steam screenshot hotkey. + This will only be called if Hooked is true, in which case Steam + will not take the screenshot itself. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotReady"> + <summary> + A screenshot successfully written or otherwise added to the library and can now be tagged. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotFailed"> + <summary> + A screenshot attempt failed + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.WriteScreenshot(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.AddScreenshot(System.String,System.String,System.Int32,System.Int32)"> + <summary> + Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + JPEG, TGA, and PNG formats are supported. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.TriggerScreenshot"> + <summary> + Causes the Steam overlay to take a screenshot. + If screenshots are being hooked by the game then a + ScreenshotRequested callback is sent back to the game instead. + </summary> + </member> + <member name="P:Steamworks.SteamScreenshots.Hooked"> + <summary> + Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or if the game handles them. + Hooking is disabled by default, and only ever enabled if you do so with this function. + If the hooking is enabled, then the ScreenshotRequested_t callback will be sent if the user presses the hotkey or + when TriggerScreenshot is called, and then the game is expected to call WriteScreenshot or AddScreenshotToLibrary in response. + </summary> + </member> + <member name="T:Steamworks.SteamServer"> + <summary> + Provides the core of the Steam Game Servers API + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnValidateAuthTicketResponse"> + <summary> + User has been authed or rejected + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the server now is logged on and has a working connection to the Steam master server. + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServerConnectFailure"> + <summary> + This will occur periodically if the Steam client is not connected, and has failed when retrying to establish a connection (result, stilltrying) + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersDisconnected"> + <summary> + Disconnected from Steam + </summary> + </member> + <member name="M:Steamworks.SteamServer.Init(Steamworks.AppId,Steamworks.SteamServerInit,System.Boolean)"> + <summary> + Initialize the steam server. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="M:Steamworks.SteamServer.RunCallbacks"> + <summary> + Run the callbacks. This is also called in Async callbacks. + </summary> + </member> + <member name="P:Steamworks.SteamServer.DedicatedServer"> + <summary> + Sets whether this should be marked as a dedicated server. + If not, it is assumed to be a listen server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MaxPlayers"> + <summary> + Gets or sets the current MaxPlayers. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.BotCount"> + <summary> + Gets or sets the current BotCount. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MapName"> + <summary> + Gets or sets the current Map Name. + </summary> + </member> + <member name="P:Steamworks.SteamServer.ModDir"> + <summary> + Gets or sets the current ModDir + </summary> + </member> + <member name="P:Steamworks.SteamServer.Product"> + <summary> + Gets the current product + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameDescription"> + <summary> + Gets or sets the current Product + </summary> + </member> + <member name="P:Steamworks.SteamServer.ServerName"> + <summary> + Gets or sets the current ServerName + </summary> + </member> + <member name="P:Steamworks.SteamServer.Passworded"> + <summary> + Set whether the server should report itself as passworded + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameTags"> + <summary> + Gets or sets the current GameTags. This is a comma seperated list of tags for this server. + When querying the server list you can filter by these tags. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOnAnonymous"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOff"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="P:Steamworks.SteamServer.LoggedOn"> + <summary> + Returns true if the server is connected and registered with the Steam master server + You should have called LogOnAnonymous etc on startup. + </summary> + </member> + <member name="P:Steamworks.SteamServer.PublicIp"> + <summary> + To the best of its ability this tries to get the server's + current public ip address. Be aware that this is likely to return + null for the first few seconds after initialization. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeats"> + <summary> + Enable or disable heartbeats, which are sent regularly to the master server. + Enabled by default. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeatRate"> + <summary> + Set heartbeat interval, if automatic heartbeats are enabled. + You can leave this at the default. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ForceHeartbeat"> + <summary> + Force send a heartbeat to the master server instead of waiting + for the next automatic update (if you've left them enabled) + </summary> + </member> + <member name="M:Steamworks.SteamServer.UpdatePlayer(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Update this connected player's information. You should really call this + any time a player's name or score changes. This keeps the information shown + to server queries up to date. + </summary> + </member> + <member name="M:Steamworks.SteamServer.SetKey(System.String,System.String)"> + <summary> + Sets a Key Value. These can be anything you like, and are accessible + when querying servers from the server list. + + Information describing gamemodes are common here. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ClearKeys"> + <summary> + Remove all key values + </summary> + </member> + <member name="M:Steamworks.SteamServer.BeginAuthSession(System.Byte[],Steamworks.SteamId)"> + <summary> + Start authorizing a ticket. This user isn't authorized yet. Wait for a call to OnAuthChange. + </summary> + </member> + <member name="M:Steamworks.SteamServer.EndSession(Steamworks.SteamId)"> + <summary> + Forget this guy. They're no longer in the game. + </summary> + </member> + <member name="M:Steamworks.SteamServer.GetOutgoingPacket(Steamworks.Data.OutgoingPacket@)"> + <summary> + If true, Steam wants to send a packet. You should respond by sending + this packet in an unconnected way to the returned Address and Port. + </summary> + <param name="packet">Packet to send. The Data passed is pooled - so use it immediately.</param> + <returns>True if we want to send a packet</returns> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.Byte[],System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.IntPtr,System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.UserHasLicenseForApp(Steamworks.SteamId,Steamworks.AppId)"> + <summary> + Does the user own this app (which could be DLC) + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.RequestUserStatsAsync(Steamworks.SteamId)"> + <summary> + Downloads stats for the user + If the user has no stats will return fail + these stats will only be auto-updated for clients playing on the server + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Unlocks the specified achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.ClearAchievement(Steamworks.SteamId,System.String)"> + <summary> + Resets the unlock status of an achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Return true if available, exists and unlocked + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.StoreUserStats(Steamworks.SteamId)"> + <summary> + Once you've set a stat change on a user you need to commit your changes. + You can do that using this function. The callback will let you know if + your action succeeded, but most of the time you can fire and forget. + </summary> + </member> + <member name="T:Steamworks.SteamUGC"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUGC.OnDownloadItemResult"> + <summary> + Posted after Download call + </summary> + </member> + <member name="M:Steamworks.SteamUGC.Download(Steamworks.Data.PublishedFileId,System.Boolean)"> + <summary> + Start downloading this item. You'll get notified of completion via OnDownloadItemResult. + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="highPriority">If true this should go straight to the top of the download list</param> + <returns>true if nothing went wrong and the download is started</returns> + </member> + <member name="M:Steamworks.SteamUGC.DownloadAsync(Steamworks.Data.PublishedFileId,System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Will attempt to download this item asyncronously - allowing you to instantly react to its installation + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="progress">An optional callback</param> + <param name="ct">Allows you to send a message to cancel the download anywhere during the process</param> + <param name="milisecondsUpdateDelay">How often to call the progress function</param> + <returns>true if downloaded and installed correctly</returns> + </member> + <member name="M:Steamworks.SteamUGC.QueryFileAsync(Steamworks.Data.PublishedFileId)"> + <summary> + Utility function to fetch a single item. Internally this uses Ugc.FileQuery - + which you can use to query multiple items if you need to. + </summary> + </member> + <member name="T:Steamworks.SteamUser"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the Steam client now has a working connection to the Steam servers. + Usually this will have occurred before the game has launched, and should only be seen if the + user has dropped connection due to a networking issue or a Steam server update. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServerConnectFailure"> + <summary> + Called when a connection attempt has failed. + This will occur periodically if the Steam client is not connected, + and has failed when retrying to establish a connection. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersDisconnected"> + <summary> + Called if the client has lost connection to the Steam servers. + Real-time services will be disabled until a matching OnSteamServersConnected has been posted. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnClientGameServerDeny"> + <summary> + Sent by the Steam server to the client telling it to disconnect from the specified game server, + which it may be in the process of or already connected to. + The game client should immediately disconnect upon receiving this message. + This can usually occur if the user doesn't have rights to play on the game server. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnLicensesUpdated"> + <summary> + Called whenever the users licenses (owned packages) changes. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnValidateAuthTicketResponse"> + <summary> + Called when an auth ticket has been validated. + The first parameter is the steamid of this user + The second is the Steam ID that owns the game, this will be different from the first + if the game is being borrowed via Steam Family Sharing + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGetAuthSessionTicketResponse"> + <summary> + Used internally for GetAuthSessionTicketAsync + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnMicroTxnAuthorizationResponse"> + <summary> + Called when a user has responded to a microtransaction authorization request. + ( appid, orderid, user authorized ) + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGameWebCallback"> + <summary> + Sent to your game in response to a steam://gamewebcallback/ command from a user clicking a link in the Steam overlay browser. + You can use this to add support for external site signups where you want to pop back into the browser after some web page + signup sequence, and optionally get back some detail about that. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnDurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, + half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.SteamUser.VoiceRecord"> + <summary> + Starts/Stops voice recording. + Once started, use GetAvailableVoice and GetVoice to get the data, and then call StopVoiceRecording + when the user has released their push-to-talk hotkey or the game session has completed. + </summary> + </member> + <member name="P:Steamworks.SteamUser.HasVoiceData"> + <summary> + Returns true if we have voice data waiting to be read + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceData(System.IO.Stream)"> + <summary> + Reads the voice data and returns the number of bytes written. + The compressed data can be transmitted by your application and decoded back into raw audio data using + DecompressVoice on the other side. The compressed data provided is in an arbitrary format and is not meant to be played directly. + This should be called once per frame, and at worst no more than four times a second to keep the microphone input delay as low as + possible. Calling this any less may result in gaps in the returned stream. + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceDataBytes"> + <summary> + Reads the voice data and returns the bytes. You should obviously ideally be using + ReadVoiceData because it won't be creating a new byte array every call. But this + makes it easier to get it working, so let the babies have their bottle. + </summary> + </member> + <member name="M:Steamworks.SteamUser.DecompressVoice(System.IO.Stream,System.Int32,System.IO.Stream)"> + <summary> + Decodes the compressed voice data returned by GetVoice. + The output data is raw single-channel 16-bit PCM audio.The decoder supports any sample rate from 11025 to 48000. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicket"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicketAsync(System.Double)"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + This waits for a positive response from the backend before returning the ticket. This means + the ticket is definitely ready to go as soon as it returns. Will return null if the callback + times out or returns negatively. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsBehindNAT"> + <summary> + Checks if the current users looks like they are behind a NAT device. + This is only valid if the user is connected to the Steam servers and may not catch all forms of NAT. + </summary> + </member> + <member name="P:Steamworks.SteamUser.SteamLevel"> + <summary> + Gets the Steam level of the user, as shown on their Steam community profile. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetStoreAuthUrlAsync(System.String)"> + <summary> + Requests a URL which authenticates an in-game browser for store check-out, and then redirects to the specified URL. + As long as the in-game browser accepts and handles session cookies, Steam microtransaction checkout pages will automatically recognize the user instead of presenting a login page. + NOTE: The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. + NOTE: The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneVerified"> + <summary> + Checks whether the current user has verified their phone number. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsTwoFactorEnabled"> + <summary> + Checks whether the current user has Steam Guard two factor authentication enabled on their account. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneIdentifying"> + <summary> + Checks whether the user's phone number is used to uniquely identify them. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneRequiringVerification"> + <summary> + Checks whether the current user's phone number is awaiting (re)verification. + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync(System.Byte[])"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + If you get a null result from this it's probably because you're calling it too often. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetDurationControl"> + <summary> + Get anti indulgence / duration control + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementIconFetched"> + <summary> + called when the achivement icon is loaded + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsReceived"> + <summary> + called when the latests stats and achievements have been received + from the server + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsStored"> + <summary> + result of a request to store the user stats for a game + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementProgress"> + <summary> + result of a request to store the achievements for a game, or an + "indicate progress" call. If both m_nCurProgress and m_nMaxProgress + are zero, that means the achievement has been fully unlocked + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsUnloaded"> + <summary> + Callback indicating that a user's stats have been unloaded + </summary> + </member> + <member name="P:Steamworks.SteamUserStats.Achievements"> + <summary> + Get the available achievements + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.IndicateAchievementProgress(System.String,System.Int32,System.Int32)"> + <summary> + Show the user a pop-up notification with the current progress toward an achievement. + Will return false if RequestCurrentStats has not completed and successfully returned + its callback, if the achievement doesn't exist/has unpublished changes in the app's + Steamworks Admin page, or if the achievement is unlocked. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.PlayerCountAsync"> + <summary> + Tries to get the number of players currently playing this game. + Or -1 if failed. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.StoreStats"> + <summary> + Send the changed stats and achievements data to the server for permanent storage. + If this fails then nothing is sent to the server. It's advisable to keep trying until the call is successful. + This call can be rate limited. Call frequency should be on the order of minutes, rather than seconds.You should only be calling this during major state changes such as the end of a round, the map changing, or the user leaving a server. This call is required to display the achievement unlock notification dialog though, so if you have called SetAchievement then it's advisable to call this soon after that. + If you have stats or achievements that you have saved locally but haven't uploaded with this function when your application process ends then this function will automatically be called. + You can find additional debug information written to the %steam_install%\logs\stats_log.txt file. + This function returns true upon success if : + RequestCurrentStats has completed and successfully returned its callback AND + the current game has stats associated with it in the Steamworks Partner backend, and those stats are published. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestCurrentStats"> + <summary> + Asynchronously request the user's current stats and achievements from the server. + You must always call this first to get the initial status of stats and achievements. + Only after the resulting callback comes back can you start calling the rest of the stats + and achievement functions for the current user. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestGlobalStatsAsync(System.Int32)"> + <summary> + Asynchronously fetches global stats data, which is available for stats marked as + "aggregated" in the App Admin panel of the Steamworks website. + You must have called RequestCurrentStats and it needs to return successfully via + its callback prior to calling this. + </summary> + <param name="days">How many days of day-by-day history to retrieve in addition to the overall totals. The limit is 60.</param> + <returns>OK indicates success, InvalidState means you need to call RequestCurrentStats first, Fail means the remote call failed</returns> + </member> + <member name="M:Steamworks.SteamUserStats.FindOrCreateLeaderboardAsync(System.String,Steamworks.Data.LeaderboardSort,Steamworks.Data.LeaderboardDisplay)"> + <summary> + Gets a leaderboard by name, it will create it if it's not yet created. + Leaderboards created with this function will not automatically show up in the Steam Community. + You must manually set the Community Name field in the App Admin panel of the Steamworks website. + As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on + the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of + dynamically created leaderboards. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Int32)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Single)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Int32)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Single)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatInt(System.String)"> + <summary> + Get a Int stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatFloat(System.String)"> + <summary> + Get a float stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.ResetAll(System.Boolean)"> + <summary> + Practically wipes the slate clean for this user. If includeAchievements is true, will wipe + any achievements too. + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamUtils"> + <summary> + Interface which provides access to a range of miscellaneous utility functions + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnIpCountryChanged"> + <summary> + The country of the user changed + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnLowBatteryPower"> + <summary> + Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute + The parameter is the number of minutes left + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnSteamShutdown"> + <summary> + Called when Steam wants to shutdown + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnGamepadTextInputDismissed"> + <summary> + Big Picture gamepad text input has been closed. Parameter is true if text was submitted, false if cancelled etc. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceAppActive"> + <summary> + Returns the number of seconds since the application was active + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceComputerActive"> + <summary> + Returns the number of seconds since the user last moved the mouse etc + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamServerTime"> + <summary> + Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IpCountry"> + <summary> + returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + e.g "US" or "UK". + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImageSize(System.Int32,System.UInt32@,System.UInt32@)"> + <summary> + returns true if the image exists, and the buffer was successfully filled out + results are returned in RGBA format + the destination buffer size should be 4 * height * width * sizeof(char) + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImage(System.Int32)"> + <summary> + returns the image in RGBA format + </summary> + </member> + <member name="P:Steamworks.SteamUtils.UsingBatteryPower"> + <summary> + Returns true if we're using a battery (ie, a laptop not plugged in) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.CurrentBatteryPower"> + <summary> + Returns battery power [0-1] + </summary> + </member> + <member name="P:Steamworks.SteamUtils.OverlayNotificationPosition"> + <summary> + Sets the position where the overlay instance for the currently calling game should show notifications. + This position is per-game and if this function is called from outside of a game context it will do nothing. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsOverlayEnabled"> + <summary> + Returns true if the overlay is running and the user can access it. The overlay process could take a few seconds to + start and hook the game process, so this function will initially return false while the overlay is loading. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.DoesOverlayNeedPresent"> + <summary> + Normally this call is unneeded if your game has a constantly running frame loop that calls the + D3D Present API, or OGL SwapBuffers API every frame. + + However, if you have a game that only refreshes the screen on an event driven basis then that can break + the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + need to Present() to the screen any time an even needing a notification happens or when the overlay is + brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.CheckFileSignatureAsync(System.String)"> + <summary> + Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + of the partner site, for example to refuse to load modified executable files. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.ShowGamepadTextInput(Steamworks.GamepadTextInputMode,Steamworks.GamepadTextInputLineMode,System.String,System.Int32,System.String)"> + <summary> + Activates the Big Picture text input dialog which only supports gamepad input + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetEnteredGamepadText"> + <summary> + Returns previously entered text + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamUILanguage"> + <summary> + returns the language the steam client is running in, you probably want + Apps.CurrentGameLanguage instead, this is for very special usage cases + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamRunningInVR"> + <summary> + returns true if Steam itself is running in VR mode + </summary> + </member> + <member name="M:Steamworks.SteamUtils.SetOverlayNotificationInset(System.Int32,System.Int32)"> + <summary> + Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamInBigPictureMode"> + <summary> + returns true if Steam and the Steam Overlay are running in Big Picture mode + Games much be launched through the Steam client to enable the Big Picture overlay. During development, + a game can be added as a non-steam game to the developers library to test this feature + </summary> + </member> + <member name="M:Steamworks.SteamUtils.StartVRDashboard"> + <summary> + ask SteamUI to create and render its OpenVR dashboard + </summary> + </member> + <member name="P:Steamworks.SteamUtils.VrHeadsetStreaming"> + <summary> + Set whether the HMD content will be streamed via Steam In-Home Streaming + If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + (this is useful for games that have asymmetric multiplayer gameplay) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamChinaLauncher"> + <summary> + Returns whether this steam client is a Steam China specific client, vs the global client + </summary> + </member> + <member name="T:Steamworks.SteamVideo"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="P:Steamworks.SteamVideo.IsBroadcasting"> + <summary> + Return true if currently using Steam's live broadcasting + </summary> + </member> + <member name="P:Steamworks.SteamVideo.NumViewers"> + <summary> + If we're broadcasting, will return the number of live viewers + </summary> + </member> + <member name="P:Steamworks.Controller.ActionSet"> + <summary> + Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + our state loops, instead of trying to place it in all of your state transitions. + </summary> + </member> + <member name="M:Steamworks.Controller.GetDigitalState(System.String)"> + <summary> + Returns the current state of the supplied digital game action + </summary> + </member> + <member name="M:Steamworks.Controller.GetAnalogState(System.String)"> + <summary> + Returns the current state of these supplied analog game action + </summary> + </member> + <member name="P:Steamworks.Friend.IsMe"> + <summary> + Returns true if this is the local user + </summary> + </member> + <member name="P:Steamworks.Friend.IsFriend"> + <summary> + Return true if this is a friend + </summary> + </member> + <member name="P:Steamworks.Friend.IsBlocked"> + <summary> + Returns true if you have this user blocked + </summary> + </member> + <member name="P:Steamworks.Friend.IsPlayingThisGame"> + <summary> + Return true if this user is playing the game we're running + </summary> + </member> + <member name="P:Steamworks.Friend.IsOnline"> + <summary> + Returns true if this friend is online + </summary> + </member> + <member name="M:Steamworks.Friend.RequestInfoAsync"> + <summary> + Sometimes we don't know the user's name. This will wait until we have + downloaded the information on this user. + </summary> + </member> + <member name="P:Steamworks.Friend.IsAway"> + <summary> + Returns true if this friend is marked as away + </summary> + </member> + <member name="P:Steamworks.Friend.IsBusy"> + <summary> + Returns true if this friend is marked as busy + </summary> + </member> + <member name="P:Steamworks.Friend.IsSnoozing"> + <summary> + Returns true if this friend is marked as snoozing + </summary> + </member> + <member name="M:Steamworks.Friend.InviteToGame(System.String)"> + <summary> + Invite this friend to the game that we are playing + </summary> + </member> + <member name="M:Steamworks.Friend.SendMessage(System.String)"> + <summary> + Sends a message to a Steam friend. Returns true if success + </summary> + </member> + <member name="M:Steamworks.Friend.RequestUserStatsAsync"> + <summary> + Tries to get download the latest user stats + </summary> + <returns>True if successful, False if failure</returns> + </member> + <member name="M:Steamworks.Friend.GetStatFloat(System.String,System.Single)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetStatInt(System.String,System.Int32)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievement(System.String,System.Boolean)"> + <summary> + Gets a user achievement state. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievementUnlockTime(System.String)"> + <summary> + Gets a the time this achievement was unlocked. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <returns>The time unlocked. If it wasn't unlocked, or you haven't downloaded the stats yet - will return DateTime.MinValue</returns> + </member> + <member name="P:Steamworks.InventoryDef.Name"> + <summary> + Shortcut to call GetProperty( "name" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Description"> + <summary> + Shortcut to call GetProperty( "description" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrl"> + <summary> + Shortcut to call GetProperty( "icon_url" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrlLarge"> + <summary> + Shortcut to call GetProperty( "icon_url_large" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.PriceCategory"> + <summary> + Shortcut to call GetProperty( "price_category" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Type"> + <summary> + Shortcut to call GetProperty( "type" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IsGenerator"> + <summary> + Returns true if this is an item that generates an item, rather + than something that is actual an item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.ExchangeSchema"> + <summary> + Shortcut to call GetProperty( "exchange" ) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipes"> + <summary> + Get a list of exchanges that are available to make this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Marketable"> + <summary> + Shortcut to call GetBoolProperty( "marketable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Tradable"> + <summary> + Shortcut to call GetBoolProperty( "tradable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Created"> + <summary> + Gets the property timestamp + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Modified"> + <summary> + Gets the property modified + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty(System.String)"> + <summary> + Get a specific property by name + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetBoolProperty(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty``1(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Properties"> + <summary> + Gets a list of all properties on this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalPrice"> + <summary> + Returns the price of this item in the local currency (SteamInventory.Currency) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalBasePrice"> + <summary> + If the price has been discounted, LocalPrice will differ from LocalBasePrice + (assumed, this isn't documented) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipesContainingThis"> + <summary> + Return a list of recepies that contain this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Properties"> + <summary> + Only available if the result set was created with the getproperties + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsNoTrade"> + <summary> + This item is account-locked and cannot be traded or given away. + This is an item status flag which is permanently attached to specific item instances + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsRemoved"> + <summary> + The item has been destroyed, traded away, expired, or otherwise invalidated. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsConsumed"> + <summary> + The item quantity has been decreased by 1 via ConsumeItem API. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="M:Steamworks.InventoryItem.ConsumeAsync(System.Int32)"> + <summary> + Consumes items from a user's inventory. If the quantity of the given item goes to zero, it is permanently removed. + Once an item is removed it cannot be recovered.This is not for the faint of heart - if your game implements item removal at all, + a high-friction UI confirmation process is highly recommended.ConsumeItem can be restricted to certain item definitions or fully + blocked via the Steamworks website to minimize support/abuse issues such as the classic "my brother borrowed my laptop and deleted all of my rare items". + </summary> + </member> + <member name="M:Steamworks.InventoryItem.SplitStackAsync(System.Int32)"> + <summary> + Split stack into two items + </summary> + </member> + <member name="M:Steamworks.InventoryItem.AddAsync(Steamworks.InventoryItem,System.Int32)"> + <summary> + Add x units of the target item to this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Acquired"> + <summary> + Will try to return the date that this item was aquired. You need to have for the items + with their properties for this to work. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Origin"> + <summary> + Tries to get the origin property. Need properties for this to work. + Will return a string like "market" + </summary> + </member> + <member name="T:Steamworks.InventoryItem.Amount"> + <summary> + Small utility class to describe an item with a quantity + </summary> + </member> + <member name="T:Steamworks.InventoryRecipe"> + <summary> + A structured description of an item exchange + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.DefinitionId"> + <summary> + The definition ID of the ingredient. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Definition"> + <summary> + If we don't know about this item definition this might be null. + In which case, DefinitionId should still hold the correct id. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Count"> + <summary> + The amount of this item needed. Generally this will be 1. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Result"> + <summary> + The item that this will create. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredients"> + <summary> + The items, with quantity required to create this item. + </summary> + </member> + <member name="M:Steamworks.InventoryResult.BelongsTo(Steamworks.SteamId)"> + <summary> + Checks whether an inventory result handle belongs to the specified Steam ID. + This is important when using Deserialize, to verify that a remote player is not pretending to have a different user's inventory + </summary> + </member> + <member name="M:Steamworks.InventoryResult.Serialize"> + <summary> + Serialized result sets contain a short signature which can't be forged or replayed across different game sessions. + A result set can be serialized on the local client, transmitted to other players via your game networking, and + deserialized by the remote players.This is a secure way of preventing hackers from lying about posessing + rare/high-value items. Serializes a result set with signature bytes to an output buffer.The size of a serialized + result depends on the number items which are being serialized.When securely transmitting items to other players, + it is recommended to use GetItemsByID first to create a minimal result set. + Results have a built-in timestamp which will be considered "expired" after an hour has elapsed.See DeserializeResult + for expiration handling. + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.Owner"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.MetaData"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.JoinAsync"> + <summary> + Will attempt to join the party. If successful will return a connection string. + If failed, will return null + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.OnReservationCompleted(Steamworks.SteamId)"> + <summary> + When a user follows your beacon, Steam will reserve one of the open party slots for them, and send your game a ReservationNotification callback. + When that user joins your party, call OnReservationCompleted to notify Steam that the user has joined successfully + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.CancelReservation(Steamworks.SteamId)"> + <summary> + To cancel a reservation (due to timeout or user input), call this. + Steam will open a new reservation slot. + Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.Destroy"> + <summary> + Turn off the beacon + </summary> + </member> + <member name="T:Steamworks.SteamServerInit"> + <summary> + Used to set up the server. + The variables in here are all required to be set, and can't be changed once the server is created. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.VersionString"> + <summary> + The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. + If you go into the dedicated server tab on steamworks you'll be able to server the latest version. If this version number is + less than that latest version then your server won't show. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.ModDir"> + <summary> + This should be the same directory game where gets installed into. Just the folder name, not the whole path. I.e. "Rust", "Garrysmod". + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.GameDescription"> + <summary> + The game description. Setting this to the full name of your game is recommended. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.DedicatedServer"> + <summary> + Is a dedicated server + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithRandomSteamPort"> + <summary> + Set the Steam quert port + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithQueryShareGamePort"> + <summary> + If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE into usQueryPort, then it causes the game server API to use + "GameSocketShare" mode, which means that the game is responsible for sending and receiving UDP packets for the master + server updater. + + More info about this here: https://partner.steamgames.com/doc/api/ISteamGameServer#HandleIncomingPacket + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewCommunityFile"> + <summary> + Create a Normal Workshop item that can be subscribed to + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewMicrotransactionFile"> + <summary> + Workshop item that is meant to be voted on for the purpose of selling in-game + </summary> + </member> + <member name="F:Steamworks.Ugc.PublishResult.NeedsWorkshopAgreement"> + <summary> + https://partner.steamgames.com/doc/features/workshop/implementation#Legal + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Id"> + <summary> + The actual ID of this file + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Title"> + <summary> + The given title of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Description"> + <summary> + The description of this item, in your local language if available + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Tags"> + <summary> + A list of tags for this item, all lowercase + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CreatorApp"> + <summary> + App Id of the app that created this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ConsumerApp"> + <summary> + App Id of the app that will consume this item. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Owner"> + <summary> + User who created this content + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Score"> + <summary> + The bayesian average for up votes / total votes, between [0,1] + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Created"> + <summary> + Time when the published item was created + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Updated"> + <summary> + Time when the published item was last updated + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPublic"> + <summary> + True if this is publically visible + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsFriendsOnly"> + <summary> + True if this item is only visible by friends of the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPrivate"> + <summary> + True if this is only visible to the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsBanned"> + <summary> + True if this item has been banned + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsAcceptedForUse"> + <summary> + Whether the developer of this app has specifically flagged this item as accepted in the Workshop + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesUp"> + <summary> + The number of upvotes of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesDown"> + <summary> + The number of downvotes of this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Download(System.Boolean)"> + <summary> + Start downloading this item. + If this returns false the item isn't getting downloaded. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesTotal"> + <summary> + If we're downloading, how big the total download is + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesDownloaded"> + <summary> + If we're downloading, how much we've downloaded + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.SizeBytes"> + <summary> + If we're installed, how big is the install + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadAmount"> + <summary> + If we're downloading our current progress as a delta betwen 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.HasTag(System.String)"> + <summary> + A case insensitive check for tag + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Subscribe"> + <summary> + Allows the user to subscribe to this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.DownloadAsync(System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Allows the user to subscribe to download this item asyncronously + If CancellationToken is default then there is 60 seconds timeout + Progress will be set to 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Unsubscribe"> + <summary> + Allows the user to unsubscribe from this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.AddFavorite"> + <summary> + Adds item to user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.RemoveFavorite"> + <summary> + Removes item from user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Vote(System.Boolean)"> + <summary> + Allows the user to rate a workshop item up or down. + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.GetUserVote"> + <summary> + Gets the current users vote on the item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Url"> + <summary> + Return a URL to view this item online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ChangelogUrl"> + <summary> + The URl to view this item's changelog + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CommentsUrl"> + <summary> + The URL to view the comments on this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DiscussUrl"> + <summary> + The URL to discuss this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.StatsUrl"> + <summary> + The URL to view this items stats online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.PreviewImageUrl"> + <summary> + The URL to the preview image for this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Edit"> + <summary> + Edit this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAnyTag"> + <summary> + Found items must have at least one of the defined tags + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAllTags"> + <summary> + Found items must have all defined tags + </summary> + </member> + <member name="P:Steamworks.Epoch.Current"> + <summary> + Returns the current Unix Epoch + </summary> + </member> + <member name="M:Steamworks.Epoch.ToDateTime(System.Decimal)"> + <summary> + Convert an epoch to a datetime + </summary> + </member> + <member name="M:Steamworks.Epoch.FromDateTime(System.DateTime)"> + <summary> + Convert a DateTime to a unix time + </summary> + </member> + <member name="M:Steamworks.Helpers.TakeBuffer(System.Int32)"> + <summary> + Returns a buffer. This will get returned and reused later on. + </summary> + </member> + <member name="T:Steamworks.PreserveAttribute"> + <summary> + Prevent unity from stripping shit we depend on + https://docs.unity3d.com/Manual/ManagedCodeStripping.html + </summary> + </member> + </members> +</doc> diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/LICENSE.md.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.xml.meta index e004c97..4b60cf0 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/LICENSE.md.meta +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win32.xml.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f23c4f821952c184fa3ad2e4ac6cb65b +guid: 1c9eb7c3219a16948b7520dc7026cf20 TextScriptImporter: externalObjects: {} userData: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.dll b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.dll Binary files differnew file mode 100644 index 0000000..bceb910 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.dll diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.dll.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.dll.meta new file mode 100644 index 0000000..d0a3d4b --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.dll.meta @@ -0,0 +1,95 @@ +fileFormatVersion: 2 +guid: b3ad7ccc15f481747842885a21b7b4ab +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 0 + Exclude Linux: 1 + Exclude Linux64: 1 + Exclude LinuxUniversal: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 0 + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: Windows + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: LinuxUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.pdb b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.pdb Binary files differnew file mode 100644 index 0000000..8225dea --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.pdb diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.pdb.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.pdb.meta new file mode 100644 index 0000000..632c125 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5f57f6707f14421449c3145099b82743 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.xml b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.xml new file mode 100644 index 0000000..b6836cb --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.xml @@ -0,0 +1,3474 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Facepunch.Steamworks.Win64</name> + </assembly> + <members> + <member name="T:Steamworks.CallResult`1"> + <summary> + An awaitable version of a SteamAPICall_t + </summary> + </member> + <member name="M:Steamworks.CallResult`1.OnCompleted(System.Action)"> + <summary> + This gets called if IsComplete returned false on the first call. + The Action "continues" the async call. We pass it to the Dispatch + to be called when the callback returns. + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetResult"> + <summary> + Gets the result. This is called internally by the async shit. + </summary> + </member> + <member name="P:Steamworks.CallResult`1.IsCompleted"> + <summary> + Return true if complete or failed + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetAwaiter"> + <summary> + This is what makes this struct awaitable + </summary> + </member> + <member name="T:Steamworks.ICallbackData"> + <summary> + Gives us a generic way to get the CallbackId of structs + </summary> + </member> + <member name="M:Steamworks.AuthTicket.Cancel"> + <summary> + Cancels a ticket. + You should cancel your ticket when you close the game or leave a server. + </summary> + </member> + <member name="T:Steamworks.Dispatch"> + <summary> + Responsible for all callback/callresult handling + + This manually pumps Steam's message queue and dispatches those + events to any waiting callbacks/callresults. + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnDebugCallback"> + <summary> + If set then we'll call this function every time a callback is generated. + + This is SLOW!! - it's for debugging - don't keep it on all the time. If you want to access a specific + callback then please create an issue on github and I'll add it! + + Params are : [Callback Type] [Callback Contents] [server] + + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnException"> + <summary> + Called if an exception happens during a callback/callresult. + This is needed because the exception isn't always accessible when running + async.. and can fail silently. With this hooked you won't be stuck wondering + what happened. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Init"> + <summary> + This gets called from Client/Server Init + It's important to switch to the manual dispatcher + </summary> + </member> + <member name="F:Steamworks.Dispatch.runningFrame"> + <summary> + Make sure we don't call Frame in a callback - because that'll cause some issues for everyone. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Frame(Steamworks.Data.HSteamPipe)"> + <summary> + Calls RunFrame and processes events from this Steam Pipe + </summary> + </member> + <member name="F:Steamworks.Dispatch.actionsToCall"> + <summary> + To be safe we don't call the continuation functions while iterating + the Callback list. This is maybe overly safe because the only way this + could be an issue is if the callback list is modified in the continuation + which would only happen if starting or shutting down in the callback. + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessCallback(Steamworks.Dispatch.CallbackMsg_t,System.Boolean)"> + <summary> + A callback is a general global message + </summary> + </member> + <member name="M:Steamworks.Dispatch.CallbackToString(Steamworks.CallbackType,System.IntPtr,System.Int32)"> + <summary> + Given a callback, try to turn it into a string + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessResult(Steamworks.Dispatch.CallbackMsg_t)"> + <summary> + A result is a reply to a specific command + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopClientAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopServerAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.OnCallComplete``1(Steamworks.Data.SteamAPICall_t,System.Action,System.Boolean)"> + <summary> + Watch for a steam api call + </summary> + </member> + <member name="M:Steamworks.Dispatch.Install``1(System.Action{``0},System.Boolean)"> + <summary> + Install a global callback. The passed function will get called if it's all good. + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.Numeric"> + <summary> + The score is just a simple numerical value + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeSeconds"> + <summary> + The score represents a time, in seconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeMilliSeconds"> + <summary> + The score represents a time, in milliseconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Ascending"> + <summary> + The top-score is the lowest number + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Descending"> + <summary> + The top-score is the highest number + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Unreliable"> + <summary> + Send the message unreliably. Can be lost. Messages *can* be larger than a + single MTU (UDP packet), but there is no retransmission, so if any piece + of the message is lost, the entire message will be dropped. + + The sending API does have some knowledge of the underlying connection, so + if there is no NAT-traversal accomplished or there is a recognized adjustment + happening on the connection, the packet will be batched until the connection + is open again. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoNagle"> + <summary> + Disable Nagle's algorithm. + By default, Nagle's algorithm is applied to all outbound messages. This means + that the message will NOT be sent immediately, in case further messages are + sent soon after you send this, which can be grouped together. Any time there + is enough buffered data to fill a packet, the packets will be pushed out immediately, + but partially-full packets not be sent until the Nagle timer expires. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoDelay"> + <summary> + If the message cannot be sent very soon (because the connection is still doing some initial + handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable + messages. Using this flag on reliable messages is invalid. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Reliable"> + Reliable message send. Can send up to 0.5mb in a single message. + Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for + efficient sends of large chunks of data. + </member> + <member name="P:Steamworks.Data.NetIdentity.LocalHost"> + <summary> + Return a NetIdentity that represents LocalHost + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.IsLocalHost"> + <summary> + Return true if this identity is localhost + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.SteamId)~Steamworks.Data.NetIdentity"> + <summary> + Convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetAddress)~Steamworks.Data.NetIdentity"> + <summary> + Set the specified Address + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetIdentity)~Steamworks.SteamId"> + <summary> + Automatically convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="P:Steamworks.Data.NetIdentity.SteamId"> + <summary> + Returns NULL if we're not a SteamId + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.Address"> + <summary> + Returns NULL if we're not a NetAddress + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.ToString"> + <summary> + We override tostring to provide a sensible representation + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Port"> + <summary> + The Port. This is redundant documentation. + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.AnyIp(System.UInt16)"> + <summary> + Any IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.LocalHost(System.UInt16)"> + <summary> + Localhost IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.String,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.Net.IPAddress,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Cleared"> + <summary> + Set everything to zero + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv6AllZeros"> + <summary> + Return true if the IP is ::0. (Doesn't check port.) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv4"> + <summary> + Return true if IP is mapped IPv4 + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsLocalHost"> + <summary> + Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Address"> + <summary> + Get the Address section + </summary> + </member> + <member name="T:Steamworks.Data.Connection"> + <summary> + Used as a base to create your client connection. This creates a socket + to a single connection. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Accept"> + <summary> + Accept an incoming connection that has been received on a listen socket. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Close(System.Boolean,System.Int32,System.String)"> + <summary> + Disconnects from the remote host and invalidates the connection handle. Any unread data on the connection is discarded.. + reasonCode is defined and used by you. + </summary> + </member> + <member name="P:Steamworks.Data.Connection.UserData"> + <summary> + Get/Set connection user data + </summary> + </member> + <member name="P:Steamworks.Data.Connection.ConnectionName"> + <summary> + A name for the connection, used mostly for debugging + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.IntPtr,System.Int32,Steamworks.Data.SendType)"> + <summary> + This is the best version to use. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],System.Int32,System.Int32,Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.String,Steamworks.Data.SendType)"> + <summary> + This creates a ton of garbage - so don't do anything with this beyond testing! + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Flush"> + <summary> + Flush any messages waiting on the Nagle timer and send them at the next transmission + opportunity (often that means right now). + </summary> + </member> + <member name="M:Steamworks.Data.Connection.DetailedStatus"> + <summary> + Returns detailed connection stats in text format. Useful + for dumping to a log, etc. + </summary> + <returns>Plain text connection info</returns> + </member> + <member name="T:Steamworks.Data.ConnectionInfo"> + <summary> + Describe the state of a connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.State"> + <summary> + High level state of the connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Address"> + <summary> + Remote address. Might be all 0's if we don't know it, or if this is N/A. + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Identity"> + <summary> + Who is on the other end? Depending on the connection type and phase of the connection, we might not know + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.EndReason"> + <summary> + Basic cause of the connection termination or problem. + </summary> + </member> + <member name="T:Steamworks.Data.NetPingLocation"> + <summary> + + Object that describes a "location" on the Internet with sufficient + detail that we can reasonably estimate an upper bound on the ping between + the two hosts, even if a direct route between the hosts is not possible, + and the connection must be routed through the Steam Datagram Relay network. + This does not contain any information that identifies the host. Indeed, + if two hosts are in the same building or otherwise have nearly identical + networking characteristics, then it's valid to use the same location + object for both of them. + + NOTE: This object should only be used in the same process! Do not serialize it, + send it over the wire, or persist it in a file or database! If you need + to do that, convert it to a string representation using the methods in + ISteamNetworkingUtils(). + + </summary> + </member> + <member name="M:Steamworks.Data.NetPingLocation.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + Estimate the round-trip latency between two arbitrary locations, in + milliseconds. This is a conservative estimate, based on routing through + the relay network. For most basic relayed connections, this ping time + will be pretty accurate, since it will be based on the route likely to + be actually used. + + If a direct IP route is used (perhaps via NAT traversal), then the route + will be different, and the ping time might be better. Or it might actually + be a bit worse! Standard IP routing is frequently suboptimal! + + But even in this case, the estimate obtained using this method is a + reasonable upper bound on the ping time. (Also it has the advantage + of returning immediately and not sending any packets.) + + In a few cases we might not able to estimate the route. In this case + a negative value is returned. k_nSteamNetworkingPing_Failed means + the reason was because of some networking difficulty. (Failure to + ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + currently answer the question for some other reason. + + Do you need to be able to do this from a backend/matchmaking server? + You are looking for the "ticketgen" library. + </member> + <member name="M:Steamworks.Data.Socket.Close"> + <summary> + Destroy a listen socket. All the connections that were accepting on the listen + socket are closed ungracefully. + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.State"> + <summary> + True if unlocked + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.UnlockTime"> + <summary> + Should hold the unlock time if State is true + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIcon"> + <summary> + Gets the icon of the achievement. This can return a null image even though the image exists if the image + hasn't been downloaded by Steam yet. You can use GetIconAsync if you want to wait for the image to be downloaded. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIconAsync(System.Int32)"> + <summary> + Gets the icon of the achievement, waits for it to load if we have to + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.GlobalUnlocked"> + <summary> + Returns the fraction (0-1) of users who have unlocked the specified achievement, or -1 if no data available. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Trigger(System.Boolean)"> + <summary> + Make this achievement earned + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Clear"> + <summary> + Reset this achievement to not achieved + </summary> + </member> + <member name="T:Steamworks.Data.DurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Appid"> + <summary> + appid generating playtime + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Applicable"> + <summary> + is duration control applicable to user + game combination + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeInLastFiveHours"> + <summary> + playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeToday"> + <summary> + playtime on current calendar day + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Progress"> + <summary> + recommended progress + </summary> + </member> + <member name="P:Steamworks.Data.Leaderboard.Name"> + <summary> + the name of a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.ReplaceScore(System.Int32,System.Int32[])"> + <summary> + Submit your score and replace your old score even if it was better + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.SubmitScoreAsync(System.Int32,System.Int32[])"> + <summary> + Submit your new score, but won't replace your high score if it's lower + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.AttachUgc(Steamworks.Data.Ugc)"> + <summary> + Attaches a piece of user generated content the user's entry on a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAsync(System.Int32,System.Int32)"> + <summary> + Used to query for a sequential range of leaderboard entries by leaderboard Sort. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAroundUserAsync(System.Int32,System.Int32)"> + <summary> + Used to retrieve leaderboard entries relative a user's entry. If there are not enough entries in the leaderboard + before or after the user's entry, Steam will adjust the range to try to return the number of entries requested. + For example, if the user is #1 on the leaderboard and start is set to -2, end is set to 2, Steam will return the first + 5 entries in the leaderboard. If The current user has no entry, this will return null. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresFromFriendsAsync"> + <summary> + Used to retrieve all leaderboard entries for friends of the current user + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Join"> + <summary> + Try to join this room. Will return RoomEnter.Success on success, + and anything else is a failure + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Leave"> + <summary> + Leave a lobby; this will take effect immediately on the client side + other users in the lobby will be notified by a LobbyChatUpdate_t callback + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.InviteFriend(Steamworks.SteamId)"> + <summary> + Invite another user to the lobby + will return true if the invite is successfully sent, whether or not the target responds + returns false if the local user is not connected to the Steam servers + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MemberCount"> + <summary> + returns the number of users in the specified lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Members"> + <summary> + Returns current members. Need to be in the lobby to see the users. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetData(System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetData(System.String,System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.DeleteData(System.String)"> + <summary> + Removes a metadata key from the lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Data"> + <summary> + Get all data for this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetMemberData(Steamworks.Friend,System.String)"> + <summary> + Gets per-user metadata for someone in this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetMemberData(System.String,System.String)"> + <summary> + Sets per-user metadata (for the local user implicitly) + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatString(System.String)"> + <summary> + Sends a string to the chat room + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatBytes(System.Byte[])"> + <summary> + Sends bytes the the chat room + this isn't exposed because there's no way to read raw bytes atm, + and I figure people can send json if they want something more advanced + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Refresh"> + <summary> + Refreshes metadata for a lobby you're not necessarily in right now + you never do this for lobbies you're a member of, only if your + this will send down all the metadata associated with a lobby + this is an asynchronous call + returns false if the local user is not connected to the Steam servers + results will be returned by a LobbyDataUpdate_t callback + if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MaxMembers"> + <summary> + Max members able to join this lobby. Cannot be over 250. + Can only be set by the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(Steamworks.SteamId)"> + <summary> + [SteamID variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(System.String,System.UInt16)"> + <summary> + [IP/Port variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetGameServer(System.UInt32@,System.UInt16@,Steamworks.SteamId@)"> + <summary> + Gets the details of the lobby's game server, if set. Returns true if the lobby is + valid and has a server set, otherwise returns false. + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Owner"> + <summary> + You must be the lobby owner to set the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.IsOwnedBy(Steamworks.SteamId)"> + <summary> + Check if the specified SteamId owns the lobby + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceClose"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceFar"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceWorldwide"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithKeyValue(System.String,System.String)"> + <summary> + Filter by specified key/value pair; string parameters + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithLower(System.String,System.Int32)"> + <summary> + Numerical filter where value is less than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithHigher(System.String,System.Int32)"> + <summary> + Numerical filter where value is greater than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must be equal to the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithNotEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must not equal the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.AddNumericalFilter(System.String,System.Int32,Steamworks.LobbyComparison)"> + <summary> + Test key, initialize numerical filter list if necessary, then add new numerical filter + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.OrderByNear(System.String,System.Int32)"> + <summary> + Order filtered results according to key/values nearest the provided key/value pair. + Can specify multiple near value filters; each successive filter is lower priority than the previous. + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithSlotsAvailable(System.Int32)"> + <summary> + returns only lobbies with the specified number of slots available + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithMaxResults(System.Int32)"> + <summary> + sets how many results to return, the lower the count the faster it is to download the lobby results + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.RequestAsync"> + <summary> + Run the query, get the matching lobbies + </summary> + </member> + <member name="T:Steamworks.Data.OutgoingPacket"> + <summary> + A server query packet. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Address"> + <summary> + Target IP address + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Port"> + <summary> + Target port + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Data"> + <summary> + This data is pooled. Make a copy if you don't use it immediately. + This buffer is also quite large - so pay attention to Size. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Size"> + <summary> + Size of the data + </summary> + </member> + <member name="T:Steamworks.Data.RemotePlaySession"> + <summary> + Represents a RemotePlaySession from the SteamRemotePlay interface + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.IsValid"> + <summary> + Returns true if this session was valid when created. This will stay true even + after disconnection - so be sure to watch SteamRemotePlay.OnSessionDisconnected + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.SteamId"> + <summary> + Get the SteamID of the connected user + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.ClientName"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.FormFactor"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagUser(Steamworks.SteamId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.SetLocation(System.String)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagPublishedFile(Steamworks.Data.PublishedFileId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="P:Steamworks.Data.ServerInfo.Tags"> + <summary> + Gets the individual tags for this server + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToHistory"> + <summary> + Add this server to our history list + If we're already in the history list, weill set the last played time to now + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.QueryRulesAsync"> + <summary> + If this server responds to source engine style queries, we'll be able to get a list of rules here + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromHistory"> + <summary> + Remove this server from our history list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToFavourites"> + <summary> + Add this server to our favourite list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromFavourites"> + <summary> + Remove this server from our favourite list + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultStatus(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Find out the status of an asynchronous inventory result handle. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultItems(Steamworks.Data.SteamInventoryResult_t,Steamworks.Data.SteamItemDetails_t[],System.UInt32@)"> + <summary> + Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultTimestamp(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.CheckResultSteamID(Steamworks.Data.SteamInventoryResult_t,Steamworks.SteamId)"> + <summary> + Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.DestroyResult(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Destroys a result handle and frees all associated memory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetAllItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + Captures the entire state of the current users Steam inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetItemsByID(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId@,System.UInt32)"> + <summary> + Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GrantPromoItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only). + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.ConsumeItem(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId,System.UInt32)"> + <summary> + ConsumeItem() removes items from the inventory permanently. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.SendItemDropHeartbeat"> + <summary> + Deprecated method. Playtime accounting is performed on the Steam servers. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.TriggerItemDrop(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryDefId)"> + <summary> + Playtime credit must be consumed and turned into item drops by your game. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.LoadItemDefinitions"> + <summary> + LoadItemDefinitions triggers the automatic load and refresh of item definitions. + </summary> + </member> + <member name="M:Steamworks.ISteamUserStats.DownloadLeaderboardEntriesForUsers(Steamworks.Data.SteamLeaderboard_t,Steamworks.SteamId[],System.Int32)"> + <summary> + Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.Interface"> + <summary> + An optional interface to use instead of deriving + </summary> + </member> + <member name="F:Steamworks.ConnectionManager.Connection"> + <summary> + The actual connection we're managing + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.ConnectionInfo"> + <summary> + The last received ConnectionInfo + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We're trying to connect! + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We started connecting to this guy + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + We got disconnected + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnMessage(System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Must call Accept or Close on the connection within a second or so + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection leaves + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnMessage(Steamworks.Data.Connection,Steamworks.Data.NetIdentity,System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message from a connection + </summary> + </member> + <member name="T:Steamworks.SocketManager"> + <summary> + Used as a base to create your networking server. This creates a socket + and listens/communicates with multiple queries. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Default behaviour is to accept every connection + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="P:Steamworks.ServerList.Base.AppId"> + <summary> + Which app we're querying. Defaults to the current app. + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnChanges"> + <summary> + When a new server is added, this function will get called + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnResponsiveServer"> + <summary> + Called for every responsive server + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Responsive"> + <summary> + A list of servers that responded. If you're only interested in servers that responded since you + last updated, then simply clear this list. + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Unresponsive"> + <summary> + A list of servers that were in the master list but didn't respond. + </summary> + </member> + <member name="M:Steamworks.ServerList.Base.RunQueryAsync(System.Single)"> + <summary> + Query the server list. Task result will be true when finished + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamApps"> + <summary> + Exposes a wide range of information and actions for applications and Downloadable Content (DLC). + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnDlcInstalled"> + <summary> + posted after the user gains ownership of DLC and that DLC is installed + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnNewLaunchParameters"> + <summary> + posted after the user gains executes a Steam URL with command line or query parameters + such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc + while the game is already running. The new params can be queried + with GetLaunchQueryParam and GetLaunchCommandLine + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribed"> + <summary> + Checks if the active user is subscribed to the current App ID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFamilySharing"> + <summary> + Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsLowVoilence"> + <summary> + Checks if the license owned by the user provides low violence depots. + Low violence depots are useful for copies sold in countries that have content restrictions + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsCybercafe"> + <summary> + Checks whether the current App ID license is for Cyber Cafes. + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsVACBanned"> + <summary> + CChecks if the user has a VAC ban on their account + </summary> + </member> + <member name="P:Steamworks.SteamApps.GameLanguage"> + <summary> + Gets the current language that the user has set. + This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AvailableLanguages"> + <summary> + Gets a list of the languages the current app supports. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsSubscribedToApp(Steamworks.AppId)"> + <summary> + Checks if the active user is subscribed to a specified AppId. + Only use this if you need to check ownership of another game related to yours, a demo for example. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsDlcInstalled(Steamworks.AppId)"> + <summary> + Checks if the user owns a specific DLC and if the DLC is installed + </summary> + </member> + <member name="M:Steamworks.SteamApps.PurchaseTime(Steamworks.AppId)"> + <summary> + Returns the time of the purchase of the app + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFreeWeekend"> + <summary> + Checks if the user is subscribed to the current app through a free weekend + This function will return false for users who have a retail or other type of license + Before using, please ask your Valve technical contact how to package and secure your free weekened + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcInformation"> + <summary> + Returns metadata for all available DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.UninstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="P:Steamworks.SteamApps.CurrentBetaName"> + <summary> + Returns null if we're not on a beta branch, else the name of the branch + </summary> + </member> + <member name="M:Steamworks.SteamApps.MarkContentCorrupt(System.Boolean)"> + <summary> + Allows you to force verify game content on next launch. + + If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), + you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit. + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstalledDepots(Steamworks.AppId)"> + <summary> + Gets a list of all installed depots for a given App ID in mount order + </summary> + </member> + <member name="M:Steamworks.SteamApps.AppInstallDir(Steamworks.AppId)"> + <summary> + Gets the install folder for a specific AppID. + This works even if the application is not installed, based on where the game would be installed with the default Steam library location. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsAppInstalled(Steamworks.AppId)"> + <summary> + The app may not actually be owned by the current user, they may have it left over from a free weekend, etc. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AppOwner"> + <summary> + Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed.. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetLaunchParam(System.String)"> + <summary> + Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. + Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. + Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + but it is advised that you not param names beginning with an underscore for your own features. + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcDownloadProgress(Steamworks.AppId)"> + <summary> + Gets the download progress for optional DLC. + </summary> + </member> + <member name="P:Steamworks.SteamApps.BuildId"> + <summary> + Gets the buildid of this app, may change at any time based on backend updates to the game. + Defaults to 0 if you're not running a build downloaded from steam. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetFileDetailsAsync(System.String)"> + <summary> + Asynchronously retrieves metadata details about a specific file in the depot manifest. + Currently provides: + </summary> + </member> + <member name="P:Steamworks.SteamApps.CommandLine"> + <summary> + Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. + This method of passing a connect string (used when joining via rich presence, accepting an + invite, etc) is preferable to passing the connect string on the operating system command + line, which is a security risk. In order for rich presence joins to go through this + path and not be placed on the OS command line, you must set a value in your app's + configuration on Steam. Ask Valve for help with this. + </summary> + </member> + <member name="M:Steamworks.SteamClient.Init(System.UInt32,System.Boolean)"> + <summary> + Initialize the steam client. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="P:Steamworks.SteamClient.IsLoggedOn"> + <summary> + Checks if the current user's Steam client is connected to the Steam servers. + If it's not then no real-time services provided by the Steamworks API will be enabled. The Steam + client will automatically be trying to recreate the connection as often as possible. When the + connection is restored a SteamServersConnected_t callback will be posted. + You usually don't need to check for this yourself. All of the API calls that rely on this will + check internally. Forcefully disabling stuff when the player loses access is usually not a + very good experience for the player and you could be preventing them from accessing APIs that do not + need a live connection to Steam. + </summary> + </member> + <member name="P:Steamworks.SteamClient.SteamId"> + <summary> + Gets the Steam ID of the account currently logged into the Steam client. This is + commonly called the 'current user', or 'local user'. + A Steam ID is a unique identifier for a Steam accounts, Steam groups, Lobbies and Chat + rooms, and used to differentiate users in all parts of the Steamworks API. + </summary> + </member> + <member name="P:Steamworks.SteamClient.Name"> + <summary> + returns the local players name - guaranteed to not be NULL. + this is the same name as on the users community profile page + </summary> + </member> + <member name="P:Steamworks.SteamClient.State"> + <summary> + gets the status of the current user + </summary> + </member> + <member name="P:Steamworks.SteamClient.AppId"> + <summary> + returns the appID of the current process + </summary> + </member> + <member name="M:Steamworks.SteamClient.RestartAppIfNecessary(System.UInt32)"> + <summary> + Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't + this returns true then it starts the Steam client if required and launches your game again through it, + and you should quit your process as soon as possible. This effectively runs steam://run/AppId so it + may not relaunch the exact executable that called it, as it will always relaunch from the version + installed in your Steam library folder/ + Note that during development, when not launching via Steam, this might always return true. + </summary> + </member> + <member name="M:Steamworks.SteamClient.ValidCheck"> + <summary> + Called in interfaces that rely on this being initialized + </summary> + </member> + <member name="T:Steamworks.SteamFriends"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnChatMessage"> + <summary> + Called when chat message has been received from a friend. You'll need to turn on + ListenForFriendsMessages to recieve this. (friend, msgtype, message) + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnPersonaStateChange"> + <summary> + called when a friends' status changes + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameRichPresenceJoinRequested"> + <summary> + Called when the user tries to join a game from their friends list + rich presence will have been set with the "connect" key which is set here + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameOverlayActivated"> + <summary> + Posted when game overlay activates or deactivates + the game can use this to be pause or resume single player games + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameServerChangeRequested"> + <summary> + Called when the user tries to join a different game server from their friends list + game client should attempt to connect to specified server when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameLobbyJoinRequested"> + <summary> + Called when the user tries to join a lobby from their friends list + game client should attempt to connect to specified lobby when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnFriendRichPresenceUpdate"> + <summary> + Callback indicating updated data about friends rich presence information + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenOverlay(System.String)"> + <summary> + The dialog to open. Valid options are: + "friends", + "community", + "players", + "settings", + "officialgamegroup", + "stats", + "achievements". + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenUserOverlay(Steamworks.SteamId,System.String)"> + <summary> + "steamid" - Opens the overlay web browser to the specified user or groups profile. + "chat" - Opens a chat window to the specified user, or joins the group chat. + "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API. + "stats" - Opens the overlay web browser to the specified user's stats. + "achievements" - Opens the overlay web browser to the specified user's achievements. + "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend. + "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend. + "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite. + "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenStoreOverlay(Steamworks.AppId)"> + <summary> + Activates the Steam Overlay to the Steam store page for the provided app. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenWebOverlay(System.String,System.Boolean)"> + <summary> + Activates Steam Overlay web browser directly to the specified URL. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenGameInviteOverlay(Steamworks.SteamId)"> + <summary> + Activates the Steam Overlay to open the invite dialog. Invitations sent from this dialog will be for the provided lobby. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetPlayedWith(Steamworks.SteamId)"> + <summary> + Mark a target user as 'played with'. + NOTE: The current user must be in game with the other player for the association to work. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.RequestUserInformation(Steamworks.SteamId,System.Boolean)"> + <summary> + Requests the persona name and optionally the avatar of a specified user. + NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them. + returns true if we're fetching the data, false if we already have it + </summary> + </member> + <member name="M:Steamworks.SteamFriends.GetRichPresence(System.String)"> + <summary> + Find a rich presence value by key for current user. Will be null if not found. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetRichPresence(System.String,System.String)"> + <summary> + Sets a rich presence value by key for current user. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.ClearRichPresence"> + <summary> + Clears all of the current user's rich presence data. + </summary> + </member> + <member name="P:Steamworks.SteamFriends.ListenForFriendsMessages"> + <summary> + Listens for Steam friends chat messages. + You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. + After enabling this you will receive callbacks when ever the user receives a chat message. + </summary> + </member> + <member name="M:Steamworks.SteamInput.RunFrame"> + <summary> + You shouldn't really need to call this because it get called by RunCallbacks on SteamClient + but Valve think it might be a nice idea if you call it right before you get input info - + just to make sure the info you're getting is 100% up to date. + </summary> + </member> + <member name="P:Steamworks.SteamInput.Controllers"> + <summary> + Return a list of connected controllers. + </summary> + </member> + <member name="M:Steamworks.SteamInput.GetDigitalActionGlyph(Steamworks.Controller,System.String)"> + <summary> + Return an absolute path to the PNG image glyph for the provided digital action name. The current + action set in use for the controller will be used for the lookup. You should cache the result and + maintain your own list of loaded PNG assets. + </summary> + <param name="controller"></param> + <param name="action"></param> + <returns></returns> + </member> + <member name="T:Steamworks.SteamInventory"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamInventory.LoadItemDefinitions"> + <summary> + Call this if you're going to want to access definition information. You should be able to get + away with calling this once at the start if your game, assuming your items don't change all the time. + This will trigger OnDefinitionsUpdated at which point Definitions should be set. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.WaitForDefinitions(System.Single)"> + <summary> + Will call LoadItemDefinitions and wait until Definitions is not null + </summary> + </member> + <member name="M:Steamworks.SteamInventory.FindDefinition(Steamworks.Data.InventoryDefId)"> + <summary> + Try to find the definition that matches this definition ID. + Uses a dictionary so should be about as fast as possible. + </summary> + </member> + <member name="P:Steamworks.SteamInventory.Items"> + <summary> + We will try to keep this list of your items automatically up to date. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItems"> + <summary> + Update the list of Items[] + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItemsAsync"> + <summary> + Get all items and return the InventoryResult + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GenerateItemAsync(Steamworks.InventoryDef,System.Int32)"> + <summary> + This is used to grant a specific item to the user. This should + only be used for development prototyping, from a trusted server, + or if you don't care about hacked clients granting arbitrary items. + This call can be disabled by a setting on Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem.Amount[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.DeserializeAsync(System.Byte[],System.Int32)"> + <summary> + Deserializes a result set and verifies the signature bytes. + This call has a potential soft-failure mode where the Result is expired, it will + still succeed in this mode.The "expired" + result could indicate that the data may be out of date - not just due to timed + expiration( one hour ), but also because one of the items in the result set may + have been traded or consumed since the result set was generated.You could compare + the timestamp from GetResultTimestamp to ISteamUtils::GetServerRealTime to determine + how old the data is. You could simply ignore the "expired" result code and + continue as normal, or you could request the player with expired data to send + an updated result set. + You should call CheckResultSteamID on the result handle when it completes to verify + that a remote player is not pretending to have a different user's inventory. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GrantPromoItemsAsync"> + <summary> + Grant all promotional items the user is eligible for + </summary> + </member> + <member name="M:Steamworks.SteamInventory.TriggerItemDropAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger an item drop for this user. This is for timed drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.AddPromoItemAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger a promo item drop. You can call this at startup, it won't + give users multiple promo drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.StartPurchaseAsync(Steamworks.InventoryDef[])"> + <summary> + Start buying a cart load of items. This will return a positive result is the purchase has + begun. You should listen out for SteamUser.OnMicroTxnAuthorizationResponse for a success. + </summary> + </member> + <member name="T:Steamworks.SteamMatchmaking"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="P:Steamworks.SteamMatchmaking.MaxLobbyKeyLength"> + <summary> + Maximum number of characters a lobby metadata key can be + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyInvite"> + <summary> + Someone invited you to a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyEntered"> + <summary> + You joined a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyCreated"> + <summary> + You created a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyGameCreated"> + <summary> + A game server has been associated with the lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyDataChanged"> + <summary> + The lobby metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDataChanged"> + <summary> + The lobby member metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberJoined"> + <summary> + The lobby member joined + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberLeave"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDisconnected"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberKicked"> + <summary> + The lobby member was kicked. The 3rd param is the user that kicked them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberBanned"> + <summary> + The lobby member was banned. The 3rd param is the user that banned them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnChatMessage"> + <summary> + A chat message was recieved from a member of a lobby + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.CreateLobbyAsync(System.Int32)"> + <summary> + Creates a new invisible lobby. Call lobby.SetPublic to take it online. + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.JoinLobbyAsync(Steamworks.SteamId)"> + <summmary> + Attempts to directly join the specified lobby + </summmary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetFavoriteServers"> + <summary> + Get a list of servers that are on your favorites list + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetHistoryServers"> + <summary> + Get a list of servers that you have added to your play history + </summary> + </member> + <member name="T:Steamworks.SteamMatchmakingServers"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="T:Steamworks.SteamMusic"> + <summary> + Functions to control music playback in the steam client. + This gives games the opportunity to do things like pause the music or lower the volume, + when an important cut scene is shown, and start playing afterwards. + Nothing uses Steam Music though so this can probably get fucked + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnPlaybackChanged"> + <summary> + Playback status changed + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnVolumeChanged"> + <summary> + Volume changed, parameter is new volume + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsEnabled"> + <summary> + Checks if Steam Music is enabled + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsPlaying"> + <summary> + true if a song is currently playing, paused, or queued up to play; otherwise false. + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Status"> + <summary> + Gets the current status of the Steam Music player + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayPrevious"> + <summary> + Have the Steam Music player play the previous song. + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayNext"> + <summary> + Have the Steam Music player skip to the next song + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Volume"> + <summary> + Gets/Sets the current volume of the Steam Music player + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PSessionRequest"> + <summary> + This SteamId wants to send you a message. You should respond by calling AcceptP2PSessionWithUser + if you want to recieve their messages + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PConnectionFailed"> + <summary> + Called when packets can't get through to the specified user. + All queued packets unsent at this point will be dropped, further attempts + to send will retry making the connection (but will be dropped if we fail again). + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AcceptP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called in response to a OnP2PSessionRequest + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AllowP2PPacketRelay(System.Boolean)"> + <summary> + Allow or disallow P2P connects to fall back on Steam server relay if direct + connection or NAT traversal can't be established. Applies to connections + created after setting or old connections that need to reconnect. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.CloseP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called when you're done communicating with a user, as this will + free up all of the resources allocated for the connection under-the-hood. + If the remote user tries to send data to you again, a new OnP2PSessionRequest + callback will be posted + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.IsP2PPacketAvailable(System.Int32)"> + <summary> + Checks if a P2P packet is available to read, and gets the size of the message if there is one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte[],System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte*,System.UInt32,System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte[],System.Int32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte*,System.UInt32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket``1(Steamworks.Data.NetAddress)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6) + + To use this derive a class from SocketManager and override as much as you want. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket(Steamworks.Data.NetAddress,Steamworks.ISocketManager)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6). + + To use this you should pass a class that inherits ISocketManager. You can use + SocketManager to get connections and send messages, but the ISocketManager class + will received all the appropriate callbacks. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal``1(Steamworks.Data.NetAddress)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal(Steamworks.Data.NetAddress,Steamworks.IConnectionManager)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateRelaySocket``1(System.Int32)"> + <summary> + Creates a server that will be relayed via Valve's network (hiding the IP and improving ping) + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectRelay``1(Steamworks.SteamId,System.Int32)"> + <summary> + Connect to a relay server + </summary> + </member> + <member name="T:Steamworks.SteamNetworkingUtils"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamNetworkingUtils.OnDebugOutput"> + <summary> + A function to receive debug network information on. This will do nothing + unless you set DebugLevel to something other than None. + + You should set this to an appropriate level instead of setting it to the highest + and then filtering it by hand because a lot of energy is used by creating the strings + and your frame rate will tank and you won't know why. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Status"> + <summary> + The latest available status gathered from the SteamRelayNetworkStatus callback + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.InitRelayNetworkAccess"> + <summary> + If you know that you are going to be using the relay network (for example, + because you anticipate making P2P connections), call this to initialize the + relay network. If you do not call this, the initialization will + be delayed until the first time you use a feature that requires access + to the relay network, which will delay that first access. + + You can also call this to force a retry if the previous attempt has failed. + Performing any action that requires access to the relay network will also + trigger a retry, and so calling this function is never strictly necessary, + but it can be useful to call it a program launch time, if access to the + relay network is anticipated. + + Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + callbacks to know when initialization has completed. + Typically initialization completes in a few seconds. + + Note: dedicated servers hosted in known data centers do *not* need + to call this, since they do not make routing decisions. However, if + the dedicated server will be using P2P functionality, it will act as + a "client" and this should be called. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.LocalPingLocation"> + <summary> + Return location info for the current host. + + It takes a few seconds to initialize access to the relay network. If + you call this very soon after startup the data may not be available yet. + + This always return the most up-to-date information we have available + right now, even if we are in the middle of re-calculating ping times. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + <summary> + Same as PingLocation.EstimatePingTo, but assumes that one location is the local host. + This is a bit faster, especially if you need to calculate a bunch of + these in a loop to find the fastest one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.WaitForPingDataAsync(System.Single)"> + <summary> + If you need ping information straight away, wait on this. It will return + immediately if you already have up to date ping data + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.ConnectionTimeout"> + <summary> + Timeout value (in ms) to use when first connecting + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Timeout"> + <summary> + Timeout value (in ms) to use after connection is established + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.SendBufferSize"> + <summary> + Upper limit of buffered pending bytes to be sent. + If this is reached SendMessage will return LimitExceeded. + Default is 524288 bytes (512k) + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.DebugLevel"> + <summary> + Get Debug Information via OnDebugOutput event + + Except when debugging, you should only use NetDebugOutput.Msg + or NetDebugOutput.Warning. For best performance, do NOT + request a high detail level and then filter out messages in the callback. + + This incurs all of the expense of formatting the messages, which are then discarded. + Setting a high priority value (low numeric value) here allows the library to avoid + doing this work. + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugLevel"> + <summary> + So we can remember and provide a Get for DebugLEvel + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugFunc"> + <summary> + We need to keep the delegate around until it's not used anymore + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OnDebugMessage(Steamworks.NetDebugOutput,System.IntPtr)"> + <summary> + This can be called from other threads - so we're going to queue these up and process them in a safe place. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OutputDebugMessages"> + <summary> + Called regularly from the Dispatch loop so we can provide a timely + stream of messages. + </summary> + </member> + <member name="T:Steamworks.SteamParental"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamParental.OnSettingsChanged"> + <summary> + Parental Settings Changed + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockEnabled"> + <summary> + + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockLocked"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsAppBlocked(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsAppInBlockList(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsFeatureBlocked(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsFeatureInBlockList(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="T:Steamworks.SteamParties"> + <summary> + This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. + Tell Steam the number of player spots that are available for your party, and a join-game string, and it + will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. + Adjust the number of open slots if other players join through alternate matchmaking methods. + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnBeaconLocationsUpdated"> + <summary> + The list of possible Party beacon locations has changed + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnActiveBeaconsUpdated"> + <summary> + The list of active beacons may have changed + </summary> + </member> + <member name="T:Steamworks.SteamRemotePlay"> + <summary> + Functions that provide information about Steam Remote Play sessions, streaming your game content to another computer or to a Steam Link app or hardware. + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionConnected"> + <summary> + Called when a session is connected + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionDisconnected"> + <summary> + Called when a session becomes disconnected + </summary> + </member> + <member name="P:Steamworks.SteamRemotePlay.SessionCount"> + <summary> + Get the number of currently connected Steam Remote Play sessions + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.GetSession(System.Int32)"> + <summary> + Get the currently connected Steam Remote Play session ID at the specified index. + IsValid will return false if it's out of bounds + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.SendInvite(Steamworks.SteamId)"> + <summary> + Invite a friend to Remote Play Together + This returns false if the invite can't be sent + </summary> + </member> + <member name="T:Steamworks.SteamRemoteStorage"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileWrite(System.String,System.Byte[])"> + <summary> + Creates a new file, writes the bytes to the file, and then closes the file. + If the target file already exists, it is overwritten + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileRead(System.String)"> + <summary> + Opens a binary file, reads the contents of the file into a byte array, and then closes the file. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileExists(System.String)"> + <summary> + Checks whether the specified file exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FilePersisted(System.String)"> + <summary> + Checks if a specific file is persisted in the steam cloud. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileTime(System.String)"> + <summary> + Gets the specified file's last modified date/time. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileSize(System.String)"> + <summary> + Gets the specified files size in bytes. 0 if not exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileForget(System.String)"> + <summary> + Deletes the file from remote storage, but leaves it on the local disk and remains accessible from the API. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileDelete(System.String)"> + <summary> + Deletes a file from the local disk, and propagates that delete to the cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaBytes"> + <summary> + Number of bytes total + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaUsedBytes"> + <summary> + Number of bytes used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaRemainingBytes"> + <summary> + Number of bytes remaining until your quota is used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabled"> + <summary> + returns true if IsCloudEnabledForAccount AND IsCloudEnabledForApp + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForAccount"> + <summary> + Checks if the account wide Steam Cloud setting is enabled for this user + or if they disabled it in the Settings->Cloud dialog. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForApp"> + <summary> + Checks if the per game Steam Cloud setting is enabled for this user + or if they disabled it in the Game Properties->Update dialog. + + This must only ever be set as the direct result of the user explicitly + requesting that it's enabled or not. This is typically accomplished with + a checkbox within your in-game options + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.FileCount"> + <summary> + Gets the total number of local files synchronized by Steam Cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.Files"> + <summary> + Get a list of filenames synchronized by Steam Cloud + </summary> + </member> + <member name="T:Steamworks.SteamScreenshots"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotRequested"> + <summary> + A screenshot has been requested by the user from the Steam screenshot hotkey. + This will only be called if Hooked is true, in which case Steam + will not take the screenshot itself. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotReady"> + <summary> + A screenshot successfully written or otherwise added to the library and can now be tagged. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotFailed"> + <summary> + A screenshot attempt failed + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.WriteScreenshot(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.AddScreenshot(System.String,System.String,System.Int32,System.Int32)"> + <summary> + Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + JPEG, TGA, and PNG formats are supported. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.TriggerScreenshot"> + <summary> + Causes the Steam overlay to take a screenshot. + If screenshots are being hooked by the game then a + ScreenshotRequested callback is sent back to the game instead. + </summary> + </member> + <member name="P:Steamworks.SteamScreenshots.Hooked"> + <summary> + Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or if the game handles them. + Hooking is disabled by default, and only ever enabled if you do so with this function. + If the hooking is enabled, then the ScreenshotRequested_t callback will be sent if the user presses the hotkey or + when TriggerScreenshot is called, and then the game is expected to call WriteScreenshot or AddScreenshotToLibrary in response. + </summary> + </member> + <member name="T:Steamworks.SteamServer"> + <summary> + Provides the core of the Steam Game Servers API + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnValidateAuthTicketResponse"> + <summary> + User has been authed or rejected + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the server now is logged on and has a working connection to the Steam master server. + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServerConnectFailure"> + <summary> + This will occur periodically if the Steam client is not connected, and has failed when retrying to establish a connection (result, stilltrying) + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersDisconnected"> + <summary> + Disconnected from Steam + </summary> + </member> + <member name="M:Steamworks.SteamServer.Init(Steamworks.AppId,Steamworks.SteamServerInit,System.Boolean)"> + <summary> + Initialize the steam server. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="M:Steamworks.SteamServer.RunCallbacks"> + <summary> + Run the callbacks. This is also called in Async callbacks. + </summary> + </member> + <member name="P:Steamworks.SteamServer.DedicatedServer"> + <summary> + Sets whether this should be marked as a dedicated server. + If not, it is assumed to be a listen server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MaxPlayers"> + <summary> + Gets or sets the current MaxPlayers. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.BotCount"> + <summary> + Gets or sets the current BotCount. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MapName"> + <summary> + Gets or sets the current Map Name. + </summary> + </member> + <member name="P:Steamworks.SteamServer.ModDir"> + <summary> + Gets or sets the current ModDir + </summary> + </member> + <member name="P:Steamworks.SteamServer.Product"> + <summary> + Gets the current product + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameDescription"> + <summary> + Gets or sets the current Product + </summary> + </member> + <member name="P:Steamworks.SteamServer.ServerName"> + <summary> + Gets or sets the current ServerName + </summary> + </member> + <member name="P:Steamworks.SteamServer.Passworded"> + <summary> + Set whether the server should report itself as passworded + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameTags"> + <summary> + Gets or sets the current GameTags. This is a comma seperated list of tags for this server. + When querying the server list you can filter by these tags. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOnAnonymous"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOff"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="P:Steamworks.SteamServer.LoggedOn"> + <summary> + Returns true if the server is connected and registered with the Steam master server + You should have called LogOnAnonymous etc on startup. + </summary> + </member> + <member name="P:Steamworks.SteamServer.PublicIp"> + <summary> + To the best of its ability this tries to get the server's + current public ip address. Be aware that this is likely to return + null for the first few seconds after initialization. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeats"> + <summary> + Enable or disable heartbeats, which are sent regularly to the master server. + Enabled by default. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeatRate"> + <summary> + Set heartbeat interval, if automatic heartbeats are enabled. + You can leave this at the default. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ForceHeartbeat"> + <summary> + Force send a heartbeat to the master server instead of waiting + for the next automatic update (if you've left them enabled) + </summary> + </member> + <member name="M:Steamworks.SteamServer.UpdatePlayer(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Update this connected player's information. You should really call this + any time a player's name or score changes. This keeps the information shown + to server queries up to date. + </summary> + </member> + <member name="M:Steamworks.SteamServer.SetKey(System.String,System.String)"> + <summary> + Sets a Key Value. These can be anything you like, and are accessible + when querying servers from the server list. + + Information describing gamemodes are common here. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ClearKeys"> + <summary> + Remove all key values + </summary> + </member> + <member name="M:Steamworks.SteamServer.BeginAuthSession(System.Byte[],Steamworks.SteamId)"> + <summary> + Start authorizing a ticket. This user isn't authorized yet. Wait for a call to OnAuthChange. + </summary> + </member> + <member name="M:Steamworks.SteamServer.EndSession(Steamworks.SteamId)"> + <summary> + Forget this guy. They're no longer in the game. + </summary> + </member> + <member name="M:Steamworks.SteamServer.GetOutgoingPacket(Steamworks.Data.OutgoingPacket@)"> + <summary> + If true, Steam wants to send a packet. You should respond by sending + this packet in an unconnected way to the returned Address and Port. + </summary> + <param name="packet">Packet to send. The Data passed is pooled - so use it immediately.</param> + <returns>True if we want to send a packet</returns> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.Byte[],System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.IntPtr,System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.UserHasLicenseForApp(Steamworks.SteamId,Steamworks.AppId)"> + <summary> + Does the user own this app (which could be DLC) + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.RequestUserStatsAsync(Steamworks.SteamId)"> + <summary> + Downloads stats for the user + If the user has no stats will return fail + these stats will only be auto-updated for clients playing on the server + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Unlocks the specified achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.ClearAchievement(Steamworks.SteamId,System.String)"> + <summary> + Resets the unlock status of an achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Return true if available, exists and unlocked + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.StoreUserStats(Steamworks.SteamId)"> + <summary> + Once you've set a stat change on a user you need to commit your changes. + You can do that using this function. The callback will let you know if + your action succeeded, but most of the time you can fire and forget. + </summary> + </member> + <member name="T:Steamworks.SteamUGC"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUGC.OnDownloadItemResult"> + <summary> + Posted after Download call + </summary> + </member> + <member name="M:Steamworks.SteamUGC.Download(Steamworks.Data.PublishedFileId,System.Boolean)"> + <summary> + Start downloading this item. You'll get notified of completion via OnDownloadItemResult. + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="highPriority">If true this should go straight to the top of the download list</param> + <returns>true if nothing went wrong and the download is started</returns> + </member> + <member name="M:Steamworks.SteamUGC.DownloadAsync(Steamworks.Data.PublishedFileId,System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Will attempt to download this item asyncronously - allowing you to instantly react to its installation + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="progress">An optional callback</param> + <param name="ct">Allows you to send a message to cancel the download anywhere during the process</param> + <param name="milisecondsUpdateDelay">How often to call the progress function</param> + <returns>true if downloaded and installed correctly</returns> + </member> + <member name="M:Steamworks.SteamUGC.QueryFileAsync(Steamworks.Data.PublishedFileId)"> + <summary> + Utility function to fetch a single item. Internally this uses Ugc.FileQuery - + which you can use to query multiple items if you need to. + </summary> + </member> + <member name="T:Steamworks.SteamUser"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the Steam client now has a working connection to the Steam servers. + Usually this will have occurred before the game has launched, and should only be seen if the + user has dropped connection due to a networking issue or a Steam server update. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServerConnectFailure"> + <summary> + Called when a connection attempt has failed. + This will occur periodically if the Steam client is not connected, + and has failed when retrying to establish a connection. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersDisconnected"> + <summary> + Called if the client has lost connection to the Steam servers. + Real-time services will be disabled until a matching OnSteamServersConnected has been posted. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnClientGameServerDeny"> + <summary> + Sent by the Steam server to the client telling it to disconnect from the specified game server, + which it may be in the process of or already connected to. + The game client should immediately disconnect upon receiving this message. + This can usually occur if the user doesn't have rights to play on the game server. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnLicensesUpdated"> + <summary> + Called whenever the users licenses (owned packages) changes. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnValidateAuthTicketResponse"> + <summary> + Called when an auth ticket has been validated. + The first parameter is the steamid of this user + The second is the Steam ID that owns the game, this will be different from the first + if the game is being borrowed via Steam Family Sharing + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGetAuthSessionTicketResponse"> + <summary> + Used internally for GetAuthSessionTicketAsync + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnMicroTxnAuthorizationResponse"> + <summary> + Called when a user has responded to a microtransaction authorization request. + ( appid, orderid, user authorized ) + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGameWebCallback"> + <summary> + Sent to your game in response to a steam://gamewebcallback/ command from a user clicking a link in the Steam overlay browser. + You can use this to add support for external site signups where you want to pop back into the browser after some web page + signup sequence, and optionally get back some detail about that. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnDurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, + half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.SteamUser.VoiceRecord"> + <summary> + Starts/Stops voice recording. + Once started, use GetAvailableVoice and GetVoice to get the data, and then call StopVoiceRecording + when the user has released their push-to-talk hotkey or the game session has completed. + </summary> + </member> + <member name="P:Steamworks.SteamUser.HasVoiceData"> + <summary> + Returns true if we have voice data waiting to be read + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceData(System.IO.Stream)"> + <summary> + Reads the voice data and returns the number of bytes written. + The compressed data can be transmitted by your application and decoded back into raw audio data using + DecompressVoice on the other side. The compressed data provided is in an arbitrary format and is not meant to be played directly. + This should be called once per frame, and at worst no more than four times a second to keep the microphone input delay as low as + possible. Calling this any less may result in gaps in the returned stream. + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceDataBytes"> + <summary> + Reads the voice data and returns the bytes. You should obviously ideally be using + ReadVoiceData because it won't be creating a new byte array every call. But this + makes it easier to get it working, so let the babies have their bottle. + </summary> + </member> + <member name="M:Steamworks.SteamUser.DecompressVoice(System.IO.Stream,System.Int32,System.IO.Stream)"> + <summary> + Decodes the compressed voice data returned by GetVoice. + The output data is raw single-channel 16-bit PCM audio.The decoder supports any sample rate from 11025 to 48000. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicket"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicketAsync(System.Double)"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + This waits for a positive response from the backend before returning the ticket. This means + the ticket is definitely ready to go as soon as it returns. Will return null if the callback + times out or returns negatively. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsBehindNAT"> + <summary> + Checks if the current users looks like they are behind a NAT device. + This is only valid if the user is connected to the Steam servers and may not catch all forms of NAT. + </summary> + </member> + <member name="P:Steamworks.SteamUser.SteamLevel"> + <summary> + Gets the Steam level of the user, as shown on their Steam community profile. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetStoreAuthUrlAsync(System.String)"> + <summary> + Requests a URL which authenticates an in-game browser for store check-out, and then redirects to the specified URL. + As long as the in-game browser accepts and handles session cookies, Steam microtransaction checkout pages will automatically recognize the user instead of presenting a login page. + NOTE: The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. + NOTE: The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneVerified"> + <summary> + Checks whether the current user has verified their phone number. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsTwoFactorEnabled"> + <summary> + Checks whether the current user has Steam Guard two factor authentication enabled on their account. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneIdentifying"> + <summary> + Checks whether the user's phone number is used to uniquely identify them. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneRequiringVerification"> + <summary> + Checks whether the current user's phone number is awaiting (re)verification. + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync(System.Byte[])"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + If you get a null result from this it's probably because you're calling it too often. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetDurationControl"> + <summary> + Get anti indulgence / duration control + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementIconFetched"> + <summary> + called when the achivement icon is loaded + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsReceived"> + <summary> + called when the latests stats and achievements have been received + from the server + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsStored"> + <summary> + result of a request to store the user stats for a game + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementProgress"> + <summary> + result of a request to store the achievements for a game, or an + "indicate progress" call. If both m_nCurProgress and m_nMaxProgress + are zero, that means the achievement has been fully unlocked + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsUnloaded"> + <summary> + Callback indicating that a user's stats have been unloaded + </summary> + </member> + <member name="P:Steamworks.SteamUserStats.Achievements"> + <summary> + Get the available achievements + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.IndicateAchievementProgress(System.String,System.Int32,System.Int32)"> + <summary> + Show the user a pop-up notification with the current progress toward an achievement. + Will return false if RequestCurrentStats has not completed and successfully returned + its callback, if the achievement doesn't exist/has unpublished changes in the app's + Steamworks Admin page, or if the achievement is unlocked. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.PlayerCountAsync"> + <summary> + Tries to get the number of players currently playing this game. + Or -1 if failed. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.StoreStats"> + <summary> + Send the changed stats and achievements data to the server for permanent storage. + If this fails then nothing is sent to the server. It's advisable to keep trying until the call is successful. + This call can be rate limited. Call frequency should be on the order of minutes, rather than seconds.You should only be calling this during major state changes such as the end of a round, the map changing, or the user leaving a server. This call is required to display the achievement unlock notification dialog though, so if you have called SetAchievement then it's advisable to call this soon after that. + If you have stats or achievements that you have saved locally but haven't uploaded with this function when your application process ends then this function will automatically be called. + You can find additional debug information written to the %steam_install%\logs\stats_log.txt file. + This function returns true upon success if : + RequestCurrentStats has completed and successfully returned its callback AND + the current game has stats associated with it in the Steamworks Partner backend, and those stats are published. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestCurrentStats"> + <summary> + Asynchronously request the user's current stats and achievements from the server. + You must always call this first to get the initial status of stats and achievements. + Only after the resulting callback comes back can you start calling the rest of the stats + and achievement functions for the current user. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestGlobalStatsAsync(System.Int32)"> + <summary> + Asynchronously fetches global stats data, which is available for stats marked as + "aggregated" in the App Admin panel of the Steamworks website. + You must have called RequestCurrentStats and it needs to return successfully via + its callback prior to calling this. + </summary> + <param name="days">How many days of day-by-day history to retrieve in addition to the overall totals. The limit is 60.</param> + <returns>OK indicates success, InvalidState means you need to call RequestCurrentStats first, Fail means the remote call failed</returns> + </member> + <member name="M:Steamworks.SteamUserStats.FindOrCreateLeaderboardAsync(System.String,Steamworks.Data.LeaderboardSort,Steamworks.Data.LeaderboardDisplay)"> + <summary> + Gets a leaderboard by name, it will create it if it's not yet created. + Leaderboards created with this function will not automatically show up in the Steam Community. + You must manually set the Community Name field in the App Admin panel of the Steamworks website. + As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on + the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of + dynamically created leaderboards. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Int32)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Single)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Int32)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Single)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatInt(System.String)"> + <summary> + Get a Int stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatFloat(System.String)"> + <summary> + Get a float stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.ResetAll(System.Boolean)"> + <summary> + Practically wipes the slate clean for this user. If includeAchievements is true, will wipe + any achievements too. + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamUtils"> + <summary> + Interface which provides access to a range of miscellaneous utility functions + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnIpCountryChanged"> + <summary> + The country of the user changed + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnLowBatteryPower"> + <summary> + Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute + The parameter is the number of minutes left + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnSteamShutdown"> + <summary> + Called when Steam wants to shutdown + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnGamepadTextInputDismissed"> + <summary> + Big Picture gamepad text input has been closed. Parameter is true if text was submitted, false if cancelled etc. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceAppActive"> + <summary> + Returns the number of seconds since the application was active + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceComputerActive"> + <summary> + Returns the number of seconds since the user last moved the mouse etc + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamServerTime"> + <summary> + Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IpCountry"> + <summary> + returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + e.g "US" or "UK". + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImageSize(System.Int32,System.UInt32@,System.UInt32@)"> + <summary> + returns true if the image exists, and the buffer was successfully filled out + results are returned in RGBA format + the destination buffer size should be 4 * height * width * sizeof(char) + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImage(System.Int32)"> + <summary> + returns the image in RGBA format + </summary> + </member> + <member name="P:Steamworks.SteamUtils.UsingBatteryPower"> + <summary> + Returns true if we're using a battery (ie, a laptop not plugged in) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.CurrentBatteryPower"> + <summary> + Returns battery power [0-1] + </summary> + </member> + <member name="P:Steamworks.SteamUtils.OverlayNotificationPosition"> + <summary> + Sets the position where the overlay instance for the currently calling game should show notifications. + This position is per-game and if this function is called from outside of a game context it will do nothing. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsOverlayEnabled"> + <summary> + Returns true if the overlay is running and the user can access it. The overlay process could take a few seconds to + start and hook the game process, so this function will initially return false while the overlay is loading. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.DoesOverlayNeedPresent"> + <summary> + Normally this call is unneeded if your game has a constantly running frame loop that calls the + D3D Present API, or OGL SwapBuffers API every frame. + + However, if you have a game that only refreshes the screen on an event driven basis then that can break + the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + need to Present() to the screen any time an even needing a notification happens or when the overlay is + brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.CheckFileSignatureAsync(System.String)"> + <summary> + Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + of the partner site, for example to refuse to load modified executable files. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.ShowGamepadTextInput(Steamworks.GamepadTextInputMode,Steamworks.GamepadTextInputLineMode,System.String,System.Int32,System.String)"> + <summary> + Activates the Big Picture text input dialog which only supports gamepad input + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetEnteredGamepadText"> + <summary> + Returns previously entered text + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamUILanguage"> + <summary> + returns the language the steam client is running in, you probably want + Apps.CurrentGameLanguage instead, this is for very special usage cases + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamRunningInVR"> + <summary> + returns true if Steam itself is running in VR mode + </summary> + </member> + <member name="M:Steamworks.SteamUtils.SetOverlayNotificationInset(System.Int32,System.Int32)"> + <summary> + Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamInBigPictureMode"> + <summary> + returns true if Steam and the Steam Overlay are running in Big Picture mode + Games much be launched through the Steam client to enable the Big Picture overlay. During development, + a game can be added as a non-steam game to the developers library to test this feature + </summary> + </member> + <member name="M:Steamworks.SteamUtils.StartVRDashboard"> + <summary> + ask SteamUI to create and render its OpenVR dashboard + </summary> + </member> + <member name="P:Steamworks.SteamUtils.VrHeadsetStreaming"> + <summary> + Set whether the HMD content will be streamed via Steam In-Home Streaming + If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + (this is useful for games that have asymmetric multiplayer gameplay) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamChinaLauncher"> + <summary> + Returns whether this steam client is a Steam China specific client, vs the global client + </summary> + </member> + <member name="T:Steamworks.SteamVideo"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="P:Steamworks.SteamVideo.IsBroadcasting"> + <summary> + Return true if currently using Steam's live broadcasting + </summary> + </member> + <member name="P:Steamworks.SteamVideo.NumViewers"> + <summary> + If we're broadcasting, will return the number of live viewers + </summary> + </member> + <member name="P:Steamworks.Controller.ActionSet"> + <summary> + Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + our state loops, instead of trying to place it in all of your state transitions. + </summary> + </member> + <member name="M:Steamworks.Controller.GetDigitalState(System.String)"> + <summary> + Returns the current state of the supplied digital game action + </summary> + </member> + <member name="M:Steamworks.Controller.GetAnalogState(System.String)"> + <summary> + Returns the current state of these supplied analog game action + </summary> + </member> + <member name="P:Steamworks.Friend.IsMe"> + <summary> + Returns true if this is the local user + </summary> + </member> + <member name="P:Steamworks.Friend.IsFriend"> + <summary> + Return true if this is a friend + </summary> + </member> + <member name="P:Steamworks.Friend.IsBlocked"> + <summary> + Returns true if you have this user blocked + </summary> + </member> + <member name="P:Steamworks.Friend.IsPlayingThisGame"> + <summary> + Return true if this user is playing the game we're running + </summary> + </member> + <member name="P:Steamworks.Friend.IsOnline"> + <summary> + Returns true if this friend is online + </summary> + </member> + <member name="M:Steamworks.Friend.RequestInfoAsync"> + <summary> + Sometimes we don't know the user's name. This will wait until we have + downloaded the information on this user. + </summary> + </member> + <member name="P:Steamworks.Friend.IsAway"> + <summary> + Returns true if this friend is marked as away + </summary> + </member> + <member name="P:Steamworks.Friend.IsBusy"> + <summary> + Returns true if this friend is marked as busy + </summary> + </member> + <member name="P:Steamworks.Friend.IsSnoozing"> + <summary> + Returns true if this friend is marked as snoozing + </summary> + </member> + <member name="M:Steamworks.Friend.InviteToGame(System.String)"> + <summary> + Invite this friend to the game that we are playing + </summary> + </member> + <member name="M:Steamworks.Friend.SendMessage(System.String)"> + <summary> + Sends a message to a Steam friend. Returns true if success + </summary> + </member> + <member name="M:Steamworks.Friend.RequestUserStatsAsync"> + <summary> + Tries to get download the latest user stats + </summary> + <returns>True if successful, False if failure</returns> + </member> + <member name="M:Steamworks.Friend.GetStatFloat(System.String,System.Single)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetStatInt(System.String,System.Int32)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievement(System.String,System.Boolean)"> + <summary> + Gets a user achievement state. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievementUnlockTime(System.String)"> + <summary> + Gets a the time this achievement was unlocked. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <returns>The time unlocked. If it wasn't unlocked, or you haven't downloaded the stats yet - will return DateTime.MinValue</returns> + </member> + <member name="P:Steamworks.InventoryDef.Name"> + <summary> + Shortcut to call GetProperty( "name" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Description"> + <summary> + Shortcut to call GetProperty( "description" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrl"> + <summary> + Shortcut to call GetProperty( "icon_url" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrlLarge"> + <summary> + Shortcut to call GetProperty( "icon_url_large" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.PriceCategory"> + <summary> + Shortcut to call GetProperty( "price_category" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Type"> + <summary> + Shortcut to call GetProperty( "type" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IsGenerator"> + <summary> + Returns true if this is an item that generates an item, rather + than something that is actual an item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.ExchangeSchema"> + <summary> + Shortcut to call GetProperty( "exchange" ) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipes"> + <summary> + Get a list of exchanges that are available to make this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Marketable"> + <summary> + Shortcut to call GetBoolProperty( "marketable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Tradable"> + <summary> + Shortcut to call GetBoolProperty( "tradable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Created"> + <summary> + Gets the property timestamp + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Modified"> + <summary> + Gets the property modified + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty(System.String)"> + <summary> + Get a specific property by name + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetBoolProperty(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty``1(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Properties"> + <summary> + Gets a list of all properties on this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalPrice"> + <summary> + Returns the price of this item in the local currency (SteamInventory.Currency) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalBasePrice"> + <summary> + If the price has been discounted, LocalPrice will differ from LocalBasePrice + (assumed, this isn't documented) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipesContainingThis"> + <summary> + Return a list of recepies that contain this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Properties"> + <summary> + Only available if the result set was created with the getproperties + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsNoTrade"> + <summary> + This item is account-locked and cannot be traded or given away. + This is an item status flag which is permanently attached to specific item instances + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsRemoved"> + <summary> + The item has been destroyed, traded away, expired, or otherwise invalidated. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsConsumed"> + <summary> + The item quantity has been decreased by 1 via ConsumeItem API. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="M:Steamworks.InventoryItem.ConsumeAsync(System.Int32)"> + <summary> + Consumes items from a user's inventory. If the quantity of the given item goes to zero, it is permanently removed. + Once an item is removed it cannot be recovered.This is not for the faint of heart - if your game implements item removal at all, + a high-friction UI confirmation process is highly recommended.ConsumeItem can be restricted to certain item definitions or fully + blocked via the Steamworks website to minimize support/abuse issues such as the classic "my brother borrowed my laptop and deleted all of my rare items". + </summary> + </member> + <member name="M:Steamworks.InventoryItem.SplitStackAsync(System.Int32)"> + <summary> + Split stack into two items + </summary> + </member> + <member name="M:Steamworks.InventoryItem.AddAsync(Steamworks.InventoryItem,System.Int32)"> + <summary> + Add x units of the target item to this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Acquired"> + <summary> + Will try to return the date that this item was aquired. You need to have for the items + with their properties for this to work. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Origin"> + <summary> + Tries to get the origin property. Need properties for this to work. + Will return a string like "market" + </summary> + </member> + <member name="T:Steamworks.InventoryItem.Amount"> + <summary> + Small utility class to describe an item with a quantity + </summary> + </member> + <member name="T:Steamworks.InventoryRecipe"> + <summary> + A structured description of an item exchange + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.DefinitionId"> + <summary> + The definition ID of the ingredient. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Definition"> + <summary> + If we don't know about this item definition this might be null. + In which case, DefinitionId should still hold the correct id. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Count"> + <summary> + The amount of this item needed. Generally this will be 1. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Result"> + <summary> + The item that this will create. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredients"> + <summary> + The items, with quantity required to create this item. + </summary> + </member> + <member name="M:Steamworks.InventoryResult.BelongsTo(Steamworks.SteamId)"> + <summary> + Checks whether an inventory result handle belongs to the specified Steam ID. + This is important when using Deserialize, to verify that a remote player is not pretending to have a different user's inventory + </summary> + </member> + <member name="M:Steamworks.InventoryResult.Serialize"> + <summary> + Serialized result sets contain a short signature which can't be forged or replayed across different game sessions. + A result set can be serialized on the local client, transmitted to other players via your game networking, and + deserialized by the remote players.This is a secure way of preventing hackers from lying about posessing + rare/high-value items. Serializes a result set with signature bytes to an output buffer.The size of a serialized + result depends on the number items which are being serialized.When securely transmitting items to other players, + it is recommended to use GetItemsByID first to create a minimal result set. + Results have a built-in timestamp which will be considered "expired" after an hour has elapsed.See DeserializeResult + for expiration handling. + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.Owner"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.MetaData"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.JoinAsync"> + <summary> + Will attempt to join the party. If successful will return a connection string. + If failed, will return null + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.OnReservationCompleted(Steamworks.SteamId)"> + <summary> + When a user follows your beacon, Steam will reserve one of the open party slots for them, and send your game a ReservationNotification callback. + When that user joins your party, call OnReservationCompleted to notify Steam that the user has joined successfully + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.CancelReservation(Steamworks.SteamId)"> + <summary> + To cancel a reservation (due to timeout or user input), call this. + Steam will open a new reservation slot. + Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.Destroy"> + <summary> + Turn off the beacon + </summary> + </member> + <member name="T:Steamworks.SteamServerInit"> + <summary> + Used to set up the server. + The variables in here are all required to be set, and can't be changed once the server is created. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.VersionString"> + <summary> + The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. + If you go into the dedicated server tab on steamworks you'll be able to server the latest version. If this version number is + less than that latest version then your server won't show. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.ModDir"> + <summary> + This should be the same directory game where gets installed into. Just the folder name, not the whole path. I.e. "Rust", "Garrysmod". + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.GameDescription"> + <summary> + The game description. Setting this to the full name of your game is recommended. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.DedicatedServer"> + <summary> + Is a dedicated server + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithRandomSteamPort"> + <summary> + Set the Steam quert port + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithQueryShareGamePort"> + <summary> + If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE into usQueryPort, then it causes the game server API to use + "GameSocketShare" mode, which means that the game is responsible for sending and receiving UDP packets for the master + server updater. + + More info about this here: https://partner.steamgames.com/doc/api/ISteamGameServer#HandleIncomingPacket + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewCommunityFile"> + <summary> + Create a Normal Workshop item that can be subscribed to + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewMicrotransactionFile"> + <summary> + Workshop item that is meant to be voted on for the purpose of selling in-game + </summary> + </member> + <member name="F:Steamworks.Ugc.PublishResult.NeedsWorkshopAgreement"> + <summary> + https://partner.steamgames.com/doc/features/workshop/implementation#Legal + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Id"> + <summary> + The actual ID of this file + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Title"> + <summary> + The given title of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Description"> + <summary> + The description of this item, in your local language if available + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Tags"> + <summary> + A list of tags for this item, all lowercase + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CreatorApp"> + <summary> + App Id of the app that created this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ConsumerApp"> + <summary> + App Id of the app that will consume this item. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Owner"> + <summary> + User who created this content + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Score"> + <summary> + The bayesian average for up votes / total votes, between [0,1] + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Created"> + <summary> + Time when the published item was created + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Updated"> + <summary> + Time when the published item was last updated + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPublic"> + <summary> + True if this is publically visible + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsFriendsOnly"> + <summary> + True if this item is only visible by friends of the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPrivate"> + <summary> + True if this is only visible to the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsBanned"> + <summary> + True if this item has been banned + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsAcceptedForUse"> + <summary> + Whether the developer of this app has specifically flagged this item as accepted in the Workshop + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesUp"> + <summary> + The number of upvotes of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesDown"> + <summary> + The number of downvotes of this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Download(System.Boolean)"> + <summary> + Start downloading this item. + If this returns false the item isn't getting downloaded. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesTotal"> + <summary> + If we're downloading, how big the total download is + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesDownloaded"> + <summary> + If we're downloading, how much we've downloaded + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.SizeBytes"> + <summary> + If we're installed, how big is the install + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadAmount"> + <summary> + If we're downloading our current progress as a delta betwen 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.HasTag(System.String)"> + <summary> + A case insensitive check for tag + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Subscribe"> + <summary> + Allows the user to subscribe to this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.DownloadAsync(System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Allows the user to subscribe to download this item asyncronously + If CancellationToken is default then there is 60 seconds timeout + Progress will be set to 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Unsubscribe"> + <summary> + Allows the user to unsubscribe from this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.AddFavorite"> + <summary> + Adds item to user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.RemoveFavorite"> + <summary> + Removes item from user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Vote(System.Boolean)"> + <summary> + Allows the user to rate a workshop item up or down. + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.GetUserVote"> + <summary> + Gets the current users vote on the item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Url"> + <summary> + Return a URL to view this item online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ChangelogUrl"> + <summary> + The URl to view this item's changelog + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CommentsUrl"> + <summary> + The URL to view the comments on this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DiscussUrl"> + <summary> + The URL to discuss this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.StatsUrl"> + <summary> + The URL to view this items stats online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.PreviewImageUrl"> + <summary> + The URL to the preview image for this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Edit"> + <summary> + Edit this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAnyTag"> + <summary> + Found items must have at least one of the defined tags + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAllTags"> + <summary> + Found items must have all defined tags + </summary> + </member> + <member name="P:Steamworks.Epoch.Current"> + <summary> + Returns the current Unix Epoch + </summary> + </member> + <member name="M:Steamworks.Epoch.ToDateTime(System.Decimal)"> + <summary> + Convert an epoch to a datetime + </summary> + </member> + <member name="M:Steamworks.Epoch.FromDateTime(System.DateTime)"> + <summary> + Convert a DateTime to a unix time + </summary> + </member> + <member name="M:Steamworks.Helpers.TakeBuffer(System.Int32)"> + <summary> + Returns a buffer. This will get returned and reused later on. + </summary> + </member> + <member name="T:Steamworks.PreserveAttribute"> + <summary> + Prevent unity from stripping shit we depend on + https://docs.unity3d.com/Manual/ManagedCodeStripping.html + </summary> + </member> + </members> +</doc> diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.xml.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.xml.meta new file mode 100644 index 0000000..bf80f5b --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/Facepunch.Steamworks.Win64.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ea452b431085aed499c01339e89fce8b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin.meta index b13e7ab..c544672 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents.meta +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 66bf26858879bfe4fbd81f069c52d05f +guid: 9eb418beccc204946862a1a8f099ec39 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux32.meta index b5bb4a0..de7c76e 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net.meta +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux32.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: db6ac70a3a0d83048aa9552cfded5206 +guid: ce9561d2de976e74684ab44c5fec0813 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux32/libsteam_api.so b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux32/libsteam_api.so Binary files differnew file mode 100644 index 0000000..7c42e16 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux32/libsteam_api.so diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux32/libsteam_api.so.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux32/libsteam_api.so.meta new file mode 100644 index 0000000..7760b89 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux32/libsteam_api.so.meta @@ -0,0 +1,89 @@ +fileFormatVersion: 2 +guid: fd99b19e202e95a44ace17e10bac2feb +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 1 + Exclude Linux: 1 + Exclude Linux64: 1 + Exclude LinuxUniversal: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: LinuxUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux64.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux64.meta new file mode 100644 index 0000000..2c7346c --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux64.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2b478e6d3d1ef9848b43453c8e68cd0d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux64/libsteam_api.so b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux64/libsteam_api.so Binary files differnew file mode 100644 index 0000000..33762a7 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux64/libsteam_api.so diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api64.dll.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux64/libsteam_api.so.meta index ad52a8d..5b1fd9a 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api64.dll.meta +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/linux64/libsteam_api.so.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 46713ca58de687b4db4d9684c7021923 +guid: a3b75fd2a03fb3149b60c2040555c3fe PluginImporter: externalObjects: {} serializedVersion: 2 @@ -7,25 +7,26 @@ PluginImporter: executionOrder: {} defineConstraints: [] isPreloaded: 0 - isOverridable: 1 + isOverridable: 0 isExplicitlyReferenced: 0 validateReferences: 1 platformData: - first: - : Any + '': Any second: enabled: 0 settings: Exclude Editor: 0 + Exclude Linux: 1 Exclude Linux64: 0 - Exclude OSXUniversal: 0 - Exclude WebGL: 1 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 1 Exclude Win: 0 Exclude Win64: 0 - first: Any: second: - enabled: 0 + enabled: 1 settings: {} - first: Editor: Editor @@ -34,31 +35,55 @@ PluginImporter: settings: CPU: x86_64 DefaultValueInitialized: true - OS: Windows + OS: Linux + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 0 + settings: + CPU: None - first: Standalone: Linux64 second: enabled: 1 settings: - CPU: AnyCPU + CPU: x86_64 - first: - Standalone: OSXUniversal + Standalone: LinuxUniversal second: enabled: 1 settings: CPU: x86_64 - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: Standalone: Win second: enabled: 1 settings: - CPU: None + CPU: AnyCPU - first: Standalone: Win64 second: enabled: 1 settings: - CPU: x86_64 + CPU: AnyCPU userData: assetBundleName: assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/osx.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/osx.meta new file mode 100644 index 0000000..484b36e --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/osx.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 93319165ca0834f41b428adbdad19105 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/osx/libsteam_api.bundle b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/osx/libsteam_api.bundle Binary files differnew file mode 100644 index 0000000..97b6446 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/osx/libsteam_api.bundle diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/osx/libsteam_api.bundle.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/osx/libsteam_api.bundle.meta new file mode 100644 index 0000000..c0be5c9 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/osx/libsteam_api.bundle.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 7d6647fb9d80f5b4f9b2ff1378756bee +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/steam_api.dll b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/steam_api.dll Binary files differnew file mode 100644 index 0000000..6e0f440 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/steam_api.dll diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.dll.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/steam_api.dll.meta index d3c89bc..eb3a7c4 100644 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.dll.meta +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/steam_api.dll.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f167045178ff20d45821bd7cb37231f7 +guid: f47308500f9b7734392a75ff281c7457 PluginImporter: externalObjects: {} serializedVersion: 2 @@ -7,25 +7,26 @@ PluginImporter: executionOrder: {} defineConstraints: [] isPreloaded: 0 - isOverridable: 1 + isOverridable: 0 isExplicitlyReferenced: 0 validateReferences: 1 platformData: - first: - : Any + '': Any second: enabled: 0 settings: Exclude Editor: 0 + Exclude Linux: 0 Exclude Linux64: 0 + Exclude LinuxUniversal: 0 Exclude OSXUniversal: 0 - Exclude WebGL: 1 Exclude Win: 0 - Exclude Win64: 0 + Exclude Win64: 1 - first: Any: second: - enabled: 0 + enabled: 1 settings: {} - first: Editor: Editor @@ -36,27 +37,51 @@ PluginImporter: DefaultValueInitialized: true OS: Windows - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: Standalone: Linux64 second: enabled: 1 settings: - CPU: None + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU - first: Standalone: OSXUniversal second: enabled: 1 settings: - CPU: x86 + CPU: AnyCPU - first: Standalone: Win second: enabled: 1 settings: - CPU: x86 + CPU: AnyCPU - first: Standalone: Win64 second: - enabled: 1 + enabled: 0 settings: CPU: None userData: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/steam_api.lib b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/steam_api.lib Binary files differnew file mode 100644 index 0000000..66182e3 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/steam_api.lib diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/steam_api.lib.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/steam_api.lib.meta new file mode 100644 index 0000000..d2fc3e8 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/steam_api.lib.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3ffd5813d91aefd459583d77d2e49ddd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64.meta new file mode 100644 index 0000000..b761a55 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4080c4017456bde44a6f4b5915b8d27c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64/steam_api64.dll b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64/steam_api64.dll Binary files differnew file mode 100644 index 0000000..ad13f2b --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64/steam_api64.dll diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64/steam_api64.dll.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64/steam_api64.dll.meta new file mode 100644 index 0000000..d371fcd --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64/steam_api64.dll.meta @@ -0,0 +1,89 @@ +fileFormatVersion: 2 +guid: cf5718c4ee1c31e458f8a58a77f4eef0 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 0 + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64/steam_api64.lib b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64/steam_api64.lib Binary files differnew file mode 100644 index 0000000..9be697b --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64/steam_api64.lib diff --git a/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64/steam_api64.lib.meta b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64/steam_api64.lib.meta new file mode 100644 index 0000000..235d424 --- /dev/null +++ b/MultiplayerToolkit/Assets/ThirdParty/Facepunch/redistributable_bin/win64/steam_api64.lib.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b7f47a56d1502a54aac85b9fadc6741e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/RedistCopy.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/RedistCopy.cs deleted file mode 100644 index 7408b93..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/RedistCopy.cs +++ /dev/null @@ -1,76 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) -#define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using UnityEngine; -using UnityEditor; -using UnityEditor.Callbacks; -using System.IO; -using Steamworks; - -public class RedistCopy { - [PostProcessBuild] - public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject) { - // We only want to do this on Steam supported platforms. - if ((target != BuildTarget.StandaloneWindows) && (target != BuildTarget.StandaloneWindows64) && (target != BuildTarget.StandaloneLinux64)) { - return; - } - - CopyDebugInfo(target, pathToBuiltProject); - - DeleteOldSteamApiDlls(target, pathToBuiltProject); - } - - static void CopyDebugInfo(BuildTarget target, string pathToBuiltProject) { - string baseDir = Path.Combine(Path.GetDirectoryName(pathToBuiltProject), Path.GetFileNameWithoutExtension(pathToBuiltProject) + "_Data"); - string pluginsDir = Path.Combine(baseDir, "Plugins"); - - // Create if it doesn't exist yet - Directory.CreateDirectory(pluginsDir); - - string[] DebugInfo = { - "Steamworks.NET created by Riley Labrecque", - "http://steamworks.github.io", - "", - "Steamworks.NET Version: " + Steamworks.Version.SteamworksNETVersion, - "Steamworks SDK Version: " + Steamworks.Version.SteamworksSDKVersion, - "Steam API DLL Version: " + Steamworks.Version.SteamAPIDLLVersion, - "Steam API DLL Size: " + Steamworks.Version.SteamAPIDLLSize, - "Steam API64 DLL Size: " + Steamworks.Version.SteamAPI64DLLSize, - "" - }; - File.WriteAllLines(Path.Combine(pluginsDir, "Steamworks.NET.txt"), DebugInfo); - } - - static void DeleteOldSteamApiDlls(BuildTarget target, string pathToBuiltProject) { - string strDllPath = Path.Combine(pathToBuiltProject, "steam_api.dll"); - if (File.Exists(strDllPath)) { - try { - File.Delete(strDllPath); - } - catch (System.Exception e) { - Debug.LogWarning($"[Steamworks.NET] Attempted to delete an old copy of 'steam_api.dll' in the following location: '{strDllPath}', but could not due to the following exception:"); - Debug.LogException(e); - } - } - - string strDll64Path = Path.Combine(pathToBuiltProject, "steam_api64.dll"); - if (File.Exists(strDll64Path)) { - try { - File.Delete(strDll64Path); - } - catch (System.Exception e) { - Debug.LogWarning($"[Steamworks.NET] Attempted to delete an old copy of 'steam_api64.dll' in the following location: '{strDll64Path}', but could not due to the following exception:"); - Debug.LogException(e); - } - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/RedistInstall.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/RedistInstall.cs deleted file mode 100644 index 2354bb9..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/RedistInstall.cs +++ /dev/null @@ -1,70 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -using UnityEngine; -using UnityEditor; -using System.IO; -using System.Collections.Generic; - -// This copys various files into their required locations when Unity is launched to make installation a breeze. -[InitializeOnLoad] -public class RedistInstall { - static RedistInstall() { - WriteSteamAppIdTxtFile(); - AddDefineSymbols(); - CheckForOldDlls(); - } - - static void WriteSteamAppIdTxtFile() { - string strCWDPath = Directory.GetCurrentDirectory(); - string strSteamAppIdPath = Path.Combine(strCWDPath, "steam_appid.txt"); - - // If the steam_appid.txt file already exists, then there's nothing to do. - if (File.Exists(strSteamAppIdPath)) { - return; - } - - Debug.Log("[Steamworks.NET] 'steam_appid.txt' is not present in the project root. Writing..."); - - try { - StreamWriter appIdFile = File.CreateText(strSteamAppIdPath); - appIdFile.Write("480"); - appIdFile.Close(); - - Debug.Log("[Steamworks.NET] Successfully copied 'steam_appid.txt' into the project root."); - } - catch (System.Exception e) { - Debug.LogWarning("[Steamworks.NET] Could not copy 'steam_appid.txt' into the project root. Please place 'steam_appid.txt' into the project root manually."); - Debug.LogException(e); - } - } - - static void CheckForOldDlls() { - string strCwdPath = Directory.GetCurrentDirectory(); - - // Unfortunately we can't just delete these outright because Unity loads the dlls in the project root instantly and Windows won't let us delete them because they are in use. - - string strDllPath = Path.Combine(strCwdPath, "steam_api.dll"); - if (File.Exists(strDllPath)) { - Debug.LogError("[Steamworks.NET] Please delete the old version of 'steam_api.dll' in your project root before continuing."); - } - - string strDll64Path = Path.Combine(strCwdPath, "steam_api64.dll"); - if (File.Exists(strDll64Path)) { - Debug.LogError("[Steamworks.NET] Please delete the old version of 'steam_api64.dll' in your project root before continuing."); - } - } - - static void AddDefineSymbols() { - string currentDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup); - HashSet<string> defines = new HashSet<string>(currentDefines.Split(';')) { - "STEAMWORKS_NET" - }; - - string newDefines = string.Join(";", defines); - if (newDefines != currentDefines) { - PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, newDefines); - } - } -} diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/com.rlabrecque.steamworks.net.editor.asmdef b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/com.rlabrecque.steamworks.net.editor.asmdef deleted file mode 100644 index eab0b2b..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/com.rlabrecque.steamworks.net.editor.asmdef +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "com.rlabrecque.steamworks.net.editor", - "rootNamespace": "", - "references": [ - "GUID:68bd7fdb68ef2684e982e8a9825b18a5" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": true, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -}
\ No newline at end of file diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/com.rlabrecque.steamworks.net.editor.asmdef.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/com.rlabrecque.steamworks.net.editor.asmdef.meta deleted file mode 100644 index 9e4d5d8..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Editor/com.rlabrecque.steamworks.net.editor.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: be281b7992e9e1840851a78ba9db107c -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/LICENSE.md b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/LICENSE.md deleted file mode 100644 index 65b3d3a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-2022 Riley Labrecque - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/libsteam_api.so b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/libsteam_api.so Binary files differdeleted file mode 100644 index 4217a2e..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/libsteam_api.so +++ /dev/null diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/Info.plist b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/Info.plist deleted file mode 100644 index 459c256..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/Info.plist +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>BuildMachineOSBuild</key> - <string>11G63</string> - <key>CFBundleDevelopmentRegion</key> - <string>English</string> - <key>CFBundleExecutable</key> - <string>libsteam_api.dylib</string> - <key>CFBundleIdentifier</key> - <string>com.rileylabrecque.steam_api</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundlePackageType</key> - <string>BNDL</string> - <key>CFBundleSignature</key> - <string>????</string> - <key>CFBundleVersion</key> - <string>1.57</string> - <key>CSResourcesFileMapped</key> - <string>yes</string> - <key>DTCompiler</key> - <string></string> - <key>DTPlatformBuild</key> - <string>4H1503</string> - <key>DTPlatformVersion</key> - <string>GM</string> - <key>DTSDKBuild</key> - <string>11E52</string> - <key>DTSDKName</key> - <string>macosx10.7</string> - <key>DTXcode</key> - <string>0463</string> - <key>DTXcodeBuild</key> - <string>4H1503</string> -</dict> -</plist> diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/MacOS.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/MacOS.meta deleted file mode 100644 index df23567..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/MacOS.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 77908b167592ab84cbc53e9051278227 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/MacOS/libsteam_api.dylib b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/MacOS/libsteam_api.dylib Binary files differdeleted file mode 100644 index 5237be0..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.bundle/Contents/MacOS/libsteam_api.dylib +++ /dev/null diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.dll b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.dll Binary files differdeleted file mode 100644 index 49f738b..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api.dll +++ /dev/null diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api64.dll b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api64.dll Binary files differdeleted file mode 100644 index 2b42812..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Plugins/steam_api64.dll +++ /dev/null diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/README.md b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/README.md deleted file mode 100644 index 46fd5fb..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Steamworks.NET - -_Steamworks.NET_ is a C# Wrapper for Valve's Steamworks API, it can be used either with Unity or your C# based Application. - -_Steamworks.NET_ was designed to be as close as possible to the original C++ API, as such the documentation provided from Valve largely covers usage of _Steamworks.NET_. -Niceties and C# Idioms can be easily implemented on top of _Steamworks.NET_. - -_Steamworks.NET_ fully supports Windows (32 and 64 bit), OSX, and Linux. Currently building against Steamworks SDK 1.55. - -* Author: [Riley Labrecque](https://github.com/rlabrecque) -* License: [MIT](http://www.opensource.org/licenses/mit-license.php) -* [Documentation](https://steamworks.github.io/) -* [Discussion Thread](http://steamcommunity.com/groups/steamworks/discussions/0/666827974770212954/) -* [Reporting Issues](https://github.com/rlabrecque/Steamworks.NET/issues) - Note that only Steamworks.NET specific issues should be reported, general API questions/issues should be asked on the [Steamworks discussion board](http://steamcommunity.com/groups/steamworks/discussions). diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime.meta deleted file mode 100644 index 4e924c2..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 376866c7c50f30c4093ff0997e4dab4f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/CallbackDispatcher.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/CallbackDispatcher.cs deleted file mode 100644 index f27be5e..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/CallbackDispatcher.cs +++ /dev/null @@ -1,400 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) -#define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -#if UNITY_3_5 || UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_5 || UNITY_4_6 - #error Unsupported Unity platform. Steamworks.NET requires Unity 4.7 or higher. -#elif UNITY_4_7 || UNITY_5 || UNITY_2017 || UNITY_2017_1_OR_NEWER - #if UNITY_EDITOR_WIN || (UNITY_STANDALONE_WIN && !UNITY_EDITOR) - #define WINDOWS_BUILD - #endif -#elif STEAMWORKS_WIN - #define WINDOWS_BUILD -#elif STEAMWORKS_LIN_OSX - // So that we don't enter the else block below. -#else - #error You need to define STEAMWORKS_WIN, or STEAMWORKS_LIN_OSX. Refer to the readme for more details. -#endif - -using System; -using System.Collections.Generic; -using System.Runtime.InteropServices; - -namespace Steamworks { - public static class CallbackDispatcher { - // We catch exceptions inside callbacks and reroute them here. - // For some reason throwing an exception causes RunCallbacks() to break otherwise. - // If you have a custom ExceptionHandler in your engine you can register it here manually until we get something more elegant hooked up. - public static void ExceptionHandler(Exception e) { -#if UNITY_STANDALONE - UnityEngine.Debug.LogException(e); -#elif STEAMWORKS_WIN || STEAMWORKS_LIN_OSX - Console.WriteLine(e.Message); -#endif - } - - private static Dictionary<int, List<Callback>> m_registeredCallbacks = new Dictionary<int, List<Callback>>(); - private static Dictionary<int, List<Callback>> m_registeredGameServerCallbacks = new Dictionary<int, List<Callback>>(); - private static Dictionary<ulong, List<CallResult>> m_registeredCallResults = new Dictionary<ulong, List<CallResult>>(); - private static object m_sync = new object(); - private static IntPtr m_pCallbackMsg; - private static int m_initCount; - - public static bool IsInitialized { - get { return m_initCount > 0; } - } - - internal static void Initialize() { - lock (m_sync) { - if (m_initCount == 0) { - NativeMethods.SteamAPI_ManualDispatch_Init(); - m_pCallbackMsg = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(CallbackMsg_t))); - } - ++m_initCount; - } - } - - internal static void Shutdown() { - lock (m_sync) { - --m_initCount; - if (m_initCount == 0) { - UnregisterAll(); - Marshal.FreeHGlobal(m_pCallbackMsg); - m_pCallbackMsg = IntPtr.Zero; - } - } - } - - internal static void Register(Callback cb) { - int iCallback = CallbackIdentities.GetCallbackIdentity(cb.GetCallbackType()); - var callbacksRegistry = cb.IsGameServer ? m_registeredGameServerCallbacks : m_registeredCallbacks; - lock (m_sync) { - List<Callback> callbacksList; - if (!callbacksRegistry.TryGetValue(iCallback, out callbacksList)) { - callbacksList = new List<Callback>(); - callbacksRegistry.Add(iCallback, callbacksList); - } - - callbacksList.Add(cb); - } - } - - internal static void Register(SteamAPICall_t asyncCall, CallResult cr) { - lock (m_sync) { - List<CallResult> callResultsList; - if (!m_registeredCallResults.TryGetValue((ulong)asyncCall, out callResultsList)) { - callResultsList = new List<CallResult>(); - m_registeredCallResults.Add((ulong)asyncCall, callResultsList); - } - - callResultsList.Add(cr); - } - } - - internal static void Unregister(Callback cb) { - int iCallback = CallbackIdentities.GetCallbackIdentity(cb.GetCallbackType()); - var callbacksRegistry = cb.IsGameServer ? m_registeredGameServerCallbacks : m_registeredCallbacks; - lock (m_sync) { - List<Callback> callbacksList; - if (callbacksRegistry.TryGetValue(iCallback, out callbacksList)) { - callbacksList.Remove(cb); - if (callbacksList.Count == 0) - callbacksRegistry.Remove(iCallback); - } - } - } - - internal static void Unregister(SteamAPICall_t asyncCall, CallResult cr) { - lock (m_sync) { - List<CallResult> callResultsList; - if (m_registeredCallResults.TryGetValue((ulong)asyncCall, out callResultsList)) { - callResultsList.Remove(cr); - if (callResultsList.Count == 0) - m_registeredCallResults.Remove((ulong)asyncCall); - } - } - } - - private static void UnregisterAll() { - List<Callback> callbacks = new List<Callback>(); - List<CallResult> callResults = new List<CallResult>(); - lock (m_sync) { - foreach (var pair in m_registeredCallbacks) { - callbacks.AddRange(pair.Value); - } - m_registeredCallbacks.Clear(); - - foreach (var pair in m_registeredGameServerCallbacks) { - callbacks.AddRange(pair.Value); - } - m_registeredGameServerCallbacks.Clear(); - - foreach (var pair in m_registeredCallResults) { - callResults.AddRange(pair.Value); - } - m_registeredCallResults.Clear(); - - foreach (var callback in callbacks) { - callback.SetUnregistered(); - } - - foreach (var callResult in callResults) { - callResult.SetUnregistered(); - } - } - } - - internal static void RunFrame(bool isGameServer) { - if (!IsInitialized) throw new InvalidOperationException("Callback dispatcher is not initialized."); - - HSteamPipe hSteamPipe = (HSteamPipe)(isGameServer ? NativeMethods.SteamGameServer_GetHSteamPipe() : NativeMethods.SteamAPI_GetHSteamPipe()); - NativeMethods.SteamAPI_ManualDispatch_RunFrame(hSteamPipe); - var callbacksRegistry = isGameServer ? m_registeredGameServerCallbacks : m_registeredCallbacks; - while (NativeMethods.SteamAPI_ManualDispatch_GetNextCallback(hSteamPipe, m_pCallbackMsg)) { - CallbackMsg_t callbackMsg = (CallbackMsg_t)Marshal.PtrToStructure(m_pCallbackMsg, typeof(CallbackMsg_t)); - try { - // Check for dispatching API call results - if (callbackMsg.m_iCallback == SteamAPICallCompleted_t.k_iCallback) { - SteamAPICallCompleted_t callCompletedCb = (SteamAPICallCompleted_t)Marshal.PtrToStructure(callbackMsg.m_pubParam, typeof(SteamAPICallCompleted_t)); - IntPtr pTmpCallResult = Marshal.AllocHGlobal((int)callCompletedCb.m_cubParam); - bool bFailed; - if (NativeMethods.SteamAPI_ManualDispatch_GetAPICallResult(hSteamPipe, callCompletedCb.m_hAsyncCall, pTmpCallResult, (int)callCompletedCb.m_cubParam, callCompletedCb.m_iCallback, out bFailed)) { - lock (m_sync) { - List<CallResult> callResults; - if (m_registeredCallResults.TryGetValue((ulong)callCompletedCb.m_hAsyncCall, out callResults)) { - m_registeredCallResults.Remove((ulong)callCompletedCb.m_hAsyncCall); - foreach (var cr in callResults) { - cr.OnRunCallResult(pTmpCallResult, bFailed, (ulong)callCompletedCb.m_hAsyncCall); - cr.SetUnregistered(); - } - } - } - } - Marshal.FreeHGlobal(pTmpCallResult); - } else { - List<Callback> callbacks; - if (callbacksRegistry.TryGetValue(callbackMsg.m_iCallback, out callbacks)) { - List<Callback> callbacksCopy; - lock (m_sync) { - callbacksCopy = new List<Callback>(callbacks); - } - foreach (var callback in callbacksCopy) { - callback.OnRunCallback(callbackMsg.m_pubParam); - } - } - } - } catch (Exception e) { - ExceptionHandler(e); - } finally { - NativeMethods.SteamAPI_ManualDispatch_FreeLastCallback(hSteamPipe); - } - } - } - } - - public abstract class Callback { - public abstract bool IsGameServer { get; } - internal abstract Type GetCallbackType(); - internal abstract void OnRunCallback(IntPtr pvParam); - internal abstract void SetUnregistered(); - } - - public sealed class Callback<T> : Callback, IDisposable { - public delegate void DispatchDelegate(T param); - private event DispatchDelegate m_Func; - - private bool m_bGameServer; - private bool m_bIsRegistered; - - private bool m_bDisposed = false; - - /// <summary> - /// Creates a new Callback. You must be calling SteamAPI.RunCallbacks() to retrieve the callbacks. - /// <para>Returns a handle to the Callback.</para> - /// <para>This MUST be assigned to a member variable to prevent the GC from cleaning it up.</para> - /// </summary> - public static Callback<T> Create(DispatchDelegate func) { - return new Callback<T>(func, bGameServer: false); - } - - /// <summary> - /// Creates a new GameServer Callback. You must be calling GameServer.RunCallbacks() to retrieve the callbacks. - /// <para>Returns a handle to the Callback.</para> - /// <para>This MUST be assigned to a member variable to prevent the GC from cleaning it up.</para> - /// </summary> - public static Callback<T> CreateGameServer(DispatchDelegate func) { - return new Callback<T>(func, bGameServer: true); - } - - public Callback(DispatchDelegate func, bool bGameServer = false) { - m_bGameServer = bGameServer; - Register(func); - } - - ~Callback() { - Dispose(); - } - - public void Dispose() { - if (m_bDisposed) { - return; - } - - GC.SuppressFinalize(this); - - if (m_bIsRegistered) - Unregister(); - - m_bDisposed = true; - } - - // Manual registration of the callback - public void Register(DispatchDelegate func) { - if (func == null) { - throw new Exception("Callback function must not be null."); - } - - if (m_bIsRegistered) { - Unregister(); - } - - m_Func = func; - - CallbackDispatcher.Register(this); - m_bIsRegistered = true; - } - - public void Unregister() { - CallbackDispatcher.Unregister(this); - m_bIsRegistered = false; - } - - public override bool IsGameServer { - get { return m_bGameServer; } - } - - internal override Type GetCallbackType() { - return typeof(T); - } - - internal override void OnRunCallback(IntPtr pvParam) { - try { - m_Func((T)Marshal.PtrToStructure(pvParam, typeof(T))); - } - catch (Exception e) { - CallbackDispatcher.ExceptionHandler(e); - } - } - - internal override void SetUnregistered() { - m_bIsRegistered = false; - } - } - - public abstract class CallResult { - internal abstract Type GetCallbackType(); - internal abstract void OnRunCallResult(IntPtr pvParam, bool bFailed, ulong hSteamAPICall); - internal abstract void SetUnregistered(); - } - - public sealed class CallResult<T> : CallResult, IDisposable { - public delegate void APIDispatchDelegate(T param, bool bIOFailure); - private event APIDispatchDelegate m_Func; - - private SteamAPICall_t m_hAPICall = SteamAPICall_t.Invalid; - public SteamAPICall_t Handle { get { return m_hAPICall; } } - - private bool m_bDisposed = false; - - /// <summary> - /// Creates a new async CallResult. You must be calling SteamAPI.RunCallbacks() to retrieve the callback. - /// <para>Returns a handle to the CallResult.</para> - /// <para>This MUST be assigned to a member variable to prevent the GC from cleaning it up.</para> - /// </summary> - public static CallResult<T> Create(APIDispatchDelegate func = null) { - return new CallResult<T>(func); - } - - public CallResult(APIDispatchDelegate func = null) { - m_Func = func; - } - - ~CallResult() { - Dispose(); - } - - public void Dispose() { - if (m_bDisposed) { - return; - } - - GC.SuppressFinalize(this); - - Cancel(); - - m_bDisposed = true; - } - - public void Set(SteamAPICall_t hAPICall, APIDispatchDelegate func = null) { - // Unlike the official SDK we let the user assign a single function during creation, - // and allow them to skip having to do so every time that they call .Set() - if (func != null) { - m_Func = func; - } - - if (m_Func == null) { - throw new Exception("CallResult function was null, you must either set it in the CallResult Constructor or via Set()"); - } - - if (m_hAPICall != SteamAPICall_t.Invalid) { - CallbackDispatcher.Unregister(m_hAPICall, this); - } - - m_hAPICall = hAPICall; - - if (hAPICall != SteamAPICall_t.Invalid) { - CallbackDispatcher.Register(hAPICall, this); - } - } - - public bool IsActive() { - return (m_hAPICall != SteamAPICall_t.Invalid); - } - - public void Cancel() { - if (IsActive()) - CallbackDispatcher.Unregister(m_hAPICall, this); - } - - internal override Type GetCallbackType() { - return typeof(T); - } - - internal override void OnRunCallResult(IntPtr pvParam, bool bFailed, ulong hSteamAPICall_) { - SteamAPICall_t hSteamAPICall = (SteamAPICall_t)hSteamAPICall_; - if (hSteamAPICall == m_hAPICall) { - try { - m_Func((T)Marshal.PtrToStructure(pvParam, typeof(T)), bFailed); - } - catch (Exception e) { - CallbackDispatcher.ExceptionHandler(e); - } - } - } - - internal override void SetUnregistered() { - m_hAPICall = SteamAPICall_t.Invalid; - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/CallbackDispatcher.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/CallbackDispatcher.cs.meta deleted file mode 100644 index 1cf8fbc..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/CallbackDispatcher.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 67e97b7dd9922a94f8e5e866125a2eb3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/CallbackIdentity.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/CallbackIdentity.cs deleted file mode 100644 index 0862d0a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/CallbackIdentity.cs +++ /dev/null @@ -1,35 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) -#define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -namespace Steamworks { - class CallbackIdentities { - public static int GetCallbackIdentity(System.Type callbackStruct) { -#if UNITY_EDITOR || UNITY_STANDALONE || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX - foreach (CallbackIdentityAttribute attribute in callbackStruct.GetCustomAttributes(typeof(CallbackIdentityAttribute), false)) { - return attribute.Identity; - } -#endif - throw new System.Exception("Callback number not found for struct " + callbackStruct); - } - } - - [System.AttributeUsage(System.AttributeTargets.Struct, AllowMultiple = false)] - internal class CallbackIdentityAttribute : System.Attribute { - public int Identity { get; set; } - public CallbackIdentityAttribute(int callbackNum) { - Identity = callbackNum; - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/CallbackIdentity.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/CallbackIdentity.cs.meta deleted file mode 100644 index dcf2883..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/CallbackIdentity.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 853cf3b9a25c4b44b84691b4af4f4dcf -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/ISteamMatchmakingResponses.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/ISteamMatchmakingResponses.cs deleted file mode 100644 index 63b5b2b..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/ISteamMatchmakingResponses.cs +++ /dev/null @@ -1,490 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) -#define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -// Unity 32bit Mono on Windows crashes with ThisCall for some reason, StdCall without the 'this' ptr is the only thing that works..? -#if (UNITY_EDITOR_WIN && !UNITY_EDITOR_64) || (!UNITY_EDITOR && UNITY_STANDALONE_WIN && !UNITY_64) - #define NOTHISPTR -#endif - -using System; -using System.Runtime.InteropServices; - -namespace Steamworks { - //----------------------------------------------------------------------------- - // Purpose: Callback interface for receiving responses after a server list refresh - // or an individual server update. - // - // Since you get these callbacks after requesting full list refreshes you will - // usually implement this interface inside an object like CServerBrowser. If that - // object is getting destructed you should use ISteamMatchMakingServers()->CancelQuery() - // to cancel any in-progress queries so you don't get a callback into the destructed - // object and crash. - //----------------------------------------------------------------------------- - public class ISteamMatchmakingServerListResponse { - // Server has responded ok with updated data - public delegate void ServerResponded(HServerListRequest hRequest, int iServer); - // Server has failed to respond - public delegate void ServerFailedToRespond(HServerListRequest hRequest, int iServer); - // A list refresh you had initiated is now 100% completed - public delegate void RefreshComplete(HServerListRequest hRequest, EMatchMakingServerResponse response); - - private VTable m_VTable; - private IntPtr m_pVTable; - private GCHandle m_pGCHandle; - private ServerResponded m_ServerResponded; - private ServerFailedToRespond m_ServerFailedToRespond; - private RefreshComplete m_RefreshComplete; - - public ISteamMatchmakingServerListResponse(ServerResponded onServerResponded, ServerFailedToRespond onServerFailedToRespond, RefreshComplete onRefreshComplete) { - if (onServerResponded == null || onServerFailedToRespond == null || onRefreshComplete == null) { - throw new ArgumentNullException(); - } - m_ServerResponded = onServerResponded; - m_ServerFailedToRespond = onServerFailedToRespond; - m_RefreshComplete = onRefreshComplete; - - m_VTable = new VTable() { - m_VTServerResponded = InternalOnServerResponded, - m_VTServerFailedToRespond = InternalOnServerFailedToRespond, - m_VTRefreshComplete = InternalOnRefreshComplete - }; - m_pVTable = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(VTable))); - Marshal.StructureToPtr(m_VTable, m_pVTable, false); - - m_pGCHandle = GCHandle.Alloc(m_pVTable, GCHandleType.Pinned); - } - - ~ISteamMatchmakingServerListResponse() { - if (m_pVTable != IntPtr.Zero) { - Marshal.FreeHGlobal(m_pVTable); - } - - if (m_pGCHandle.IsAllocated) { - m_pGCHandle.Free(); - } - } - -#if NOTHISPTR - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate void InternalServerResponded(HServerListRequest hRequest, int iServer); - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate void InternalServerFailedToRespond(HServerListRequest hRequest, int iServer); - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate void InternalRefreshComplete(HServerListRequest hRequest, EMatchMakingServerResponse response); - private void InternalOnServerResponded(HServerListRequest hRequest, int iServer) { - try - { - m_ServerResponded(hRequest, iServer); - } - catch (Exception e) - { - CallbackDispatcher.ExceptionHandler(e); - } - } - private void InternalOnServerFailedToRespond(HServerListRequest hRequest, int iServer) { - try - { - m_ServerFailedToRespond(hRequest, iServer); - } - catch (Exception e) - { - CallbackDispatcher.ExceptionHandler(e); - } - } - private void InternalOnRefreshComplete(HServerListRequest hRequest, EMatchMakingServerResponse response) { - try - { - m_RefreshComplete(hRequest, response); - } - catch (Exception e) - { - CallbackDispatcher.ExceptionHandler(e); - } - } -#else - [UnmanagedFunctionPointer(CallingConvention.ThisCall)] - private delegate void InternalServerResponded(IntPtr thisptr, HServerListRequest hRequest, int iServer); - [UnmanagedFunctionPointer(CallingConvention.ThisCall)] - private delegate void InternalServerFailedToRespond(IntPtr thisptr, HServerListRequest hRequest, int iServer); - [UnmanagedFunctionPointer(CallingConvention.ThisCall)] - private delegate void InternalRefreshComplete(IntPtr thisptr, HServerListRequest hRequest, EMatchMakingServerResponse response); - private void InternalOnServerResponded(IntPtr thisptr, HServerListRequest hRequest, int iServer) { - try - { - m_ServerResponded(hRequest, iServer); - } - catch (Exception e) - { - CallbackDispatcher.ExceptionHandler(e); - } - } - private void InternalOnServerFailedToRespond(IntPtr thisptr, HServerListRequest hRequest, int iServer) { - try - { - m_ServerFailedToRespond(hRequest, iServer); - } - catch (Exception e) - { - CallbackDispatcher.ExceptionHandler(e); - } - } - private void InternalOnRefreshComplete(IntPtr thisptr, HServerListRequest hRequest, EMatchMakingServerResponse response) { - try - { - m_RefreshComplete(hRequest, response); - } - catch (Exception e) - { - CallbackDispatcher.ExceptionHandler(e); - } - } -#endif - - [StructLayout(LayoutKind.Sequential)] - private class VTable { - [NonSerialized] - [MarshalAs(UnmanagedType.FunctionPtr)] - public InternalServerResponded m_VTServerResponded; - - [NonSerialized] - [MarshalAs(UnmanagedType.FunctionPtr)] - public InternalServerFailedToRespond m_VTServerFailedToRespond; - - [NonSerialized] - [MarshalAs(UnmanagedType.FunctionPtr)] - public InternalRefreshComplete m_VTRefreshComplete; - } - - public static explicit operator System.IntPtr(ISteamMatchmakingServerListResponse that) { - return that.m_pGCHandle.AddrOfPinnedObject(); - } - }; - - //----------------------------------------------------------------------------- - // Purpose: Callback interface for receiving responses after pinging an individual server - // - // These callbacks all occur in response to querying an individual server - // via the ISteamMatchmakingServers()->PingServer() call below. If you are - // destructing an object that implements this interface then you should call - // ISteamMatchmakingServers()->CancelServerQuery() passing in the handle to the query - // which is in progress. Failure to cancel in progress queries when destructing - // a callback handler may result in a crash when a callback later occurs. - //----------------------------------------------------------------------------- - public class ISteamMatchmakingPingResponse { - // Server has responded successfully and has updated data - public delegate void ServerResponded(gameserveritem_t server); - - // Server failed to respond to the ping request - public delegate void ServerFailedToRespond(); - - private VTable m_VTable; - private IntPtr m_pVTable; - private GCHandle m_pGCHandle; - private ServerResponded m_ServerResponded; - private ServerFailedToRespond m_ServerFailedToRespond; - - public ISteamMatchmakingPingResponse(ServerResponded onServerResponded, ServerFailedToRespond onServerFailedToRespond) { - if (onServerResponded == null || onServerFailedToRespond == null) { - throw new ArgumentNullException(); - } - m_ServerResponded = onServerResponded; - m_ServerFailedToRespond = onServerFailedToRespond; - - m_VTable = new VTable() { - m_VTServerResponded = InternalOnServerResponded, - m_VTServerFailedToRespond = InternalOnServerFailedToRespond, - }; - m_pVTable = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(VTable))); - Marshal.StructureToPtr(m_VTable, m_pVTable, false); - - m_pGCHandle = GCHandle.Alloc(m_pVTable, GCHandleType.Pinned); - } - - ~ISteamMatchmakingPingResponse() { - if (m_pVTable != IntPtr.Zero) { - Marshal.FreeHGlobal(m_pVTable); - } - - if (m_pGCHandle.IsAllocated) { - m_pGCHandle.Free(); - } - } - -#if NOTHISPTR - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate void InternalServerResponded(gameserveritem_t server); - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate void InternalServerFailedToRespond(); - private void InternalOnServerResponded(gameserveritem_t server) { - m_ServerResponded(server); - } - private void InternalOnServerFailedToRespond() { - m_ServerFailedToRespond(); - } -#else - [UnmanagedFunctionPointer(CallingConvention.ThisCall)] - private delegate void InternalServerResponded(IntPtr thisptr, gameserveritem_t server); - [UnmanagedFunctionPointer(CallingConvention.ThisCall)] - private delegate void InternalServerFailedToRespond(IntPtr thisptr); - private void InternalOnServerResponded(IntPtr thisptr, gameserveritem_t server) { - m_ServerResponded(server); - } - private void InternalOnServerFailedToRespond(IntPtr thisptr) { - m_ServerFailedToRespond(); - } -#endif - - [StructLayout(LayoutKind.Sequential)] - private class VTable { - [NonSerialized] - [MarshalAs(UnmanagedType.FunctionPtr)] - public InternalServerResponded m_VTServerResponded; - - [NonSerialized] - [MarshalAs(UnmanagedType.FunctionPtr)] - public InternalServerFailedToRespond m_VTServerFailedToRespond; - } - - public static explicit operator System.IntPtr(ISteamMatchmakingPingResponse that) { - return that.m_pGCHandle.AddrOfPinnedObject(); - } - }; - - //----------------------------------------------------------------------------- - // Purpose: Callback interface for receiving responses after requesting details on - // who is playing on a particular server. - // - // These callbacks all occur in response to querying an individual server - // via the ISteamMatchmakingServers()->PlayerDetails() call below. If you are - // destructing an object that implements this interface then you should call - // ISteamMatchmakingServers()->CancelServerQuery() passing in the handle to the query - // which is in progress. Failure to cancel in progress queries when destructing - // a callback handler may result in a crash when a callback later occurs. - //----------------------------------------------------------------------------- - public class ISteamMatchmakingPlayersResponse { - // Got data on a new player on the server -- you'll get this callback once per player - // on the server which you have requested player data on. - public delegate void AddPlayerToList(string pchName, int nScore, float flTimePlayed); - - // The server failed to respond to the request for player details - public delegate void PlayersFailedToRespond(); - - // The server has finished responding to the player details request - // (ie, you won't get anymore AddPlayerToList callbacks) - public delegate void PlayersRefreshComplete(); - - private VTable m_VTable; - private IntPtr m_pVTable; - private GCHandle m_pGCHandle; - private AddPlayerToList m_AddPlayerToList; - private PlayersFailedToRespond m_PlayersFailedToRespond; - private PlayersRefreshComplete m_PlayersRefreshComplete; - - public ISteamMatchmakingPlayersResponse(AddPlayerToList onAddPlayerToList, PlayersFailedToRespond onPlayersFailedToRespond, PlayersRefreshComplete onPlayersRefreshComplete) { - if (onAddPlayerToList == null || onPlayersFailedToRespond == null || onPlayersRefreshComplete == null) { - throw new ArgumentNullException(); - } - m_AddPlayerToList = onAddPlayerToList; - m_PlayersFailedToRespond = onPlayersFailedToRespond; - m_PlayersRefreshComplete = onPlayersRefreshComplete; - - m_VTable = new VTable() { - m_VTAddPlayerToList = InternalOnAddPlayerToList, - m_VTPlayersFailedToRespond = InternalOnPlayersFailedToRespond, - m_VTPlayersRefreshComplete = InternalOnPlayersRefreshComplete - }; - m_pVTable = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(VTable))); - Marshal.StructureToPtr(m_VTable, m_pVTable, false); - - m_pGCHandle = GCHandle.Alloc(m_pVTable, GCHandleType.Pinned); - } - - ~ISteamMatchmakingPlayersResponse() { - if (m_pVTable != IntPtr.Zero) { - Marshal.FreeHGlobal(m_pVTable); - } - - if (m_pGCHandle.IsAllocated) { - m_pGCHandle.Free(); - } - } - -#if NOTHISPTR - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - public delegate void InternalAddPlayerToList(IntPtr pchName, int nScore, float flTimePlayed); - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - public delegate void InternalPlayersFailedToRespond(); - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - public delegate void InternalPlayersRefreshComplete(); - private void InternalOnAddPlayerToList(IntPtr pchName, int nScore, float flTimePlayed) { - m_AddPlayerToList(InteropHelp.PtrToStringUTF8(pchName), nScore, flTimePlayed); - } - private void InternalOnPlayersFailedToRespond() { - m_PlayersFailedToRespond(); - } - private void InternalOnPlayersRefreshComplete() { - m_PlayersRefreshComplete(); - } -#else - [UnmanagedFunctionPointer(CallingConvention.ThisCall)] - public delegate void InternalAddPlayerToList(IntPtr thisptr, IntPtr pchName, int nScore, float flTimePlayed); - [UnmanagedFunctionPointer(CallingConvention.ThisCall)] - public delegate void InternalPlayersFailedToRespond(IntPtr thisptr); - [UnmanagedFunctionPointer(CallingConvention.ThisCall)] - public delegate void InternalPlayersRefreshComplete(IntPtr thisptr); - private void InternalOnAddPlayerToList(IntPtr thisptr, IntPtr pchName, int nScore, float flTimePlayed) { - m_AddPlayerToList(InteropHelp.PtrToStringUTF8(pchName), nScore, flTimePlayed); - } - private void InternalOnPlayersFailedToRespond(IntPtr thisptr) { - m_PlayersFailedToRespond(); - } - private void InternalOnPlayersRefreshComplete(IntPtr thisptr) { - m_PlayersRefreshComplete(); - } -#endif - - [StructLayout(LayoutKind.Sequential)] - private class VTable { - [NonSerialized] - [MarshalAs(UnmanagedType.FunctionPtr)] - public InternalAddPlayerToList m_VTAddPlayerToList; - - [NonSerialized] - [MarshalAs(UnmanagedType.FunctionPtr)] - public InternalPlayersFailedToRespond m_VTPlayersFailedToRespond; - - [NonSerialized] - [MarshalAs(UnmanagedType.FunctionPtr)] - public InternalPlayersRefreshComplete m_VTPlayersRefreshComplete; - } - - public static explicit operator System.IntPtr(ISteamMatchmakingPlayersResponse that) { - return that.m_pGCHandle.AddrOfPinnedObject(); - } - }; - - //----------------------------------------------------------------------------- - // Purpose: Callback interface for receiving responses after requesting rules - // details on a particular server. - // - // These callbacks all occur in response to querying an individual server - // via the ISteamMatchmakingServers()->ServerRules() call below. If you are - // destructing an object that implements this interface then you should call - // ISteamMatchmakingServers()->CancelServerQuery() passing in the handle to the query - // which is in progress. Failure to cancel in progress queries when destructing - // a callback handler may result in a crash when a callback later occurs. - //----------------------------------------------------------------------------- - public class ISteamMatchmakingRulesResponse { - // Got data on a rule on the server -- you'll get one of these per rule defined on - // the server you are querying - public delegate void RulesResponded(string pchRule, string pchValue); - - // The server failed to respond to the request for rule details - public delegate void RulesFailedToRespond(); - - // The server has finished responding to the rule details request - // (ie, you won't get anymore RulesResponded callbacks) - public delegate void RulesRefreshComplete(); - - private VTable m_VTable; - private IntPtr m_pVTable; - private GCHandle m_pGCHandle; - private RulesResponded m_RulesResponded; - private RulesFailedToRespond m_RulesFailedToRespond; - private RulesRefreshComplete m_RulesRefreshComplete; - - public ISteamMatchmakingRulesResponse(RulesResponded onRulesResponded, RulesFailedToRespond onRulesFailedToRespond, RulesRefreshComplete onRulesRefreshComplete) { - if (onRulesResponded == null || onRulesFailedToRespond == null || onRulesRefreshComplete == null) { - throw new ArgumentNullException(); - } - m_RulesResponded = onRulesResponded; - m_RulesFailedToRespond = onRulesFailedToRespond; - m_RulesRefreshComplete = onRulesRefreshComplete; - - m_VTable = new VTable() { - m_VTRulesResponded = InternalOnRulesResponded, - m_VTRulesFailedToRespond = InternalOnRulesFailedToRespond, - m_VTRulesRefreshComplete = InternalOnRulesRefreshComplete - }; - m_pVTable = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(VTable))); - Marshal.StructureToPtr(m_VTable, m_pVTable, false); - - m_pGCHandle = GCHandle.Alloc(m_pVTable, GCHandleType.Pinned); - } - - ~ISteamMatchmakingRulesResponse() { - if (m_pVTable != IntPtr.Zero) { - Marshal.FreeHGlobal(m_pVTable); - } - - if (m_pGCHandle.IsAllocated) { - m_pGCHandle.Free(); - } - } - -#if NOTHISPTR - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - public delegate void InternalRulesResponded(IntPtr pchRule, IntPtr pchValue); - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - public delegate void InternalRulesFailedToRespond(); - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - public delegate void InternalRulesRefreshComplete(); - private void InternalOnRulesResponded(IntPtr pchRule, IntPtr pchValue) { - m_RulesResponded(InteropHelp.PtrToStringUTF8(pchRule), InteropHelp.PtrToStringUTF8(pchValue)); - } - private void InternalOnRulesFailedToRespond() { - m_RulesFailedToRespond(); - } - private void InternalOnRulesRefreshComplete() { - m_RulesRefreshComplete(); - } -#else - [UnmanagedFunctionPointer(CallingConvention.ThisCall)] - public delegate void InternalRulesResponded(IntPtr thisptr, IntPtr pchRule, IntPtr pchValue); - [UnmanagedFunctionPointer(CallingConvention.ThisCall)] - public delegate void InternalRulesFailedToRespond(IntPtr thisptr); - [UnmanagedFunctionPointer(CallingConvention.ThisCall)] - public delegate void InternalRulesRefreshComplete(IntPtr thisptr); - private void InternalOnRulesResponded(IntPtr thisptr, IntPtr pchRule, IntPtr pchValue) { - m_RulesResponded(InteropHelp.PtrToStringUTF8(pchRule), InteropHelp.PtrToStringUTF8(pchValue)); - } - private void InternalOnRulesFailedToRespond(IntPtr thisptr) { - m_RulesFailedToRespond(); - } - private void InternalOnRulesRefreshComplete(IntPtr thisptr) { - m_RulesRefreshComplete(); - } -#endif - - [StructLayout(LayoutKind.Sequential)] - private class VTable { - [NonSerialized] - [MarshalAs(UnmanagedType.FunctionPtr)] - public InternalRulesResponded m_VTRulesResponded; - - [NonSerialized] - [MarshalAs(UnmanagedType.FunctionPtr)] - public InternalRulesFailedToRespond m_VTRulesFailedToRespond; - - [NonSerialized] - [MarshalAs(UnmanagedType.FunctionPtr)] - public InternalRulesRefreshComplete m_VTRulesRefreshComplete; - } - - public static explicit operator System.IntPtr(ISteamMatchmakingRulesResponse that) { - return that.m_pGCHandle.AddrOfPinnedObject(); - } - }; -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/ISteamMatchmakingResponses.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/ISteamMatchmakingResponses.cs.meta deleted file mode 100644 index 8e0f1c7..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/ISteamMatchmakingResponses.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 577f601da41ba9c4d934e78cbf1edfa6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/InteropHelp.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/InteropHelp.cs deleted file mode 100644 index a9ae57a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/InteropHelp.cs +++ /dev/null @@ -1,267 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) -#define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -using System.Text; - -namespace Steamworks { - public class InteropHelp { - public static void TestIfPlatformSupported() { -#if !UNITY_EDITOR && !UNITY_STANDALONE && !STEAMWORKS_WIN && !STEAMWORKS_LIN_OSX - throw new System.InvalidOperationException("Steamworks functions can only be called on platforms that Steam is available on."); -#endif - } - - public static void TestIfAvailableClient() { - TestIfPlatformSupported(); - if (CSteamAPIContext.GetSteamClient() == System.IntPtr.Zero) { - if (!CSteamAPIContext.Init()) { - throw new System.InvalidOperationException("Steamworks is not initialized."); - } - } - } - - public static void TestIfAvailableGameServer() { - TestIfPlatformSupported(); - if (CSteamGameServerAPIContext.GetSteamClient() == System.IntPtr.Zero) { - if (!CSteamGameServerAPIContext.Init()) { - throw new System.InvalidOperationException("Steamworks GameServer is not initialized."); - } - } - } - - // This continues to exist for both 'out string' and strings returned by Steamworks functions. - public static string PtrToStringUTF8(IntPtr nativeUtf8) { - if (nativeUtf8 == IntPtr.Zero) { - return null; - } - - int len = 0; - - while (Marshal.ReadByte(nativeUtf8, len) != 0) { - ++len; - } - - if (len == 0) { - return string.Empty; - } - - byte[] buffer = new byte[len]; - Marshal.Copy(nativeUtf8, buffer, 0, buffer.Length); - return Encoding.UTF8.GetString(buffer); - } - - public static string ByteArrayToStringUTF8(byte[] buffer) { - int length = 0; - while (length < buffer.Length && buffer[length] != 0) { - length++; - } - - return Encoding.UTF8.GetString(buffer, 0, length); - } - - public static void StringToByteArrayUTF8(string str, byte[] outArrayBuffer, int outArrayBufferSize) - { - outArrayBuffer = new byte[outArrayBufferSize]; - int length = Encoding.UTF8.GetBytes(str, 0, str.Length, outArrayBuffer, 0); - outArrayBuffer[length] = 0; - } - - // This is for 'const char *' arguments which we need to ensure do not get GC'd while Steam is using them. - // We can't use an ICustomMarshaler because Unity crashes when a string between 96 and 127 characters long is defined/initialized at the top of class scope... -#if UNITY_EDITOR || UNITY_STANDALONE || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX - public class UTF8StringHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid { - public UTF8StringHandle(string str) - : base(true) { - if (str == null) { - SetHandle(IntPtr.Zero); - return; - } - - // +1 for '\0' - byte[] strbuf = new byte[Encoding.UTF8.GetByteCount(str) + 1]; - Encoding.UTF8.GetBytes(str, 0, str.Length, strbuf, 0); - IntPtr buffer = Marshal.AllocHGlobal(strbuf.Length); - Marshal.Copy(strbuf, 0, buffer, strbuf.Length); - - SetHandle(buffer); - } - - protected override bool ReleaseHandle() { - if (!IsInvalid) { - Marshal.FreeHGlobal(handle); - } - return true; - } - } -#else - public class UTF8StringHandle : IDisposable { - public UTF8StringHandle(string str) { } - public void Dispose() {} - } -#endif - - // TODO - Should be IDisposable - // We can't use an ICustomMarshaler because Unity dies when MarshalManagedToNative() gets called with a generic type. - public class SteamParamStringArray { - // The pointer to each AllocHGlobal() string - IntPtr[] m_Strings; - // The pointer to the condensed version of m_Strings - IntPtr m_ptrStrings; - // The pointer to the StructureToPtr version of SteamParamStringArray_t that will get marshaled - IntPtr m_pSteamParamStringArray; - - public SteamParamStringArray(System.Collections.Generic.IList<string> strings) { - if (strings == null) { - m_pSteamParamStringArray = IntPtr.Zero; - return; - } - - m_Strings = new IntPtr[strings.Count]; - for (int i = 0; i < strings.Count; ++i) { - byte[] strbuf = new byte[Encoding.UTF8.GetByteCount(strings[i]) + 1]; - Encoding.UTF8.GetBytes(strings[i], 0, strings[i].Length, strbuf, 0); - m_Strings[i] = Marshal.AllocHGlobal(strbuf.Length); - Marshal.Copy(strbuf, 0, m_Strings[i], strbuf.Length); - } - - m_ptrStrings = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(IntPtr)) * m_Strings.Length); - SteamParamStringArray_t stringArray = new SteamParamStringArray_t() { - m_ppStrings = m_ptrStrings, - m_nNumStrings = m_Strings.Length - }; - Marshal.Copy(m_Strings, 0, stringArray.m_ppStrings, m_Strings.Length); - - m_pSteamParamStringArray = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SteamParamStringArray_t))); - Marshal.StructureToPtr(stringArray, m_pSteamParamStringArray, false); - } - - ~SteamParamStringArray() { - if (m_Strings != null) { - foreach (IntPtr ptr in m_Strings) { - Marshal.FreeHGlobal(ptr); - } - } - - if (m_ptrStrings != IntPtr.Zero) { - Marshal.FreeHGlobal(m_ptrStrings); - } - - if (m_pSteamParamStringArray != IntPtr.Zero) { - Marshal.FreeHGlobal(m_pSteamParamStringArray); - } - } - - public static implicit operator IntPtr(SteamParamStringArray that) { - return that.m_pSteamParamStringArray; - } - } - } - - // TODO - Should be IDisposable - // MatchMaking Key-Value Pair Marshaller - public class MMKVPMarshaller { - private IntPtr m_pNativeArray; - private IntPtr m_pArrayEntries; - - public MMKVPMarshaller(MatchMakingKeyValuePair_t[] filters) { - if (filters == null) { - return; - } - - int sizeOfMMKVP = Marshal.SizeOf(typeof(MatchMakingKeyValuePair_t)); - - m_pNativeArray = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(IntPtr)) * filters.Length); - m_pArrayEntries = Marshal.AllocHGlobal(sizeOfMMKVP * filters.Length); - for (int i = 0; i < filters.Length; ++i) { - Marshal.StructureToPtr(filters[i], new IntPtr(m_pArrayEntries.ToInt64() + (i * sizeOfMMKVP)), false); - } - - Marshal.WriteIntPtr(m_pNativeArray, m_pArrayEntries); - } - - ~MMKVPMarshaller() { - if (m_pArrayEntries != IntPtr.Zero) { - Marshal.FreeHGlobal(m_pArrayEntries); - } - if (m_pNativeArray != IntPtr.Zero) { - Marshal.FreeHGlobal(m_pNativeArray); - } - } - - public static implicit operator IntPtr(MMKVPMarshaller that) { - return that.m_pNativeArray; - } - } - - public class DllCheck { -#if DISABLED - [DllImport("kernel32.dll")] - public static extern IntPtr GetModuleHandle(string lpModuleName); - - [DllImport("kernel32.dll", CharSet = CharSet.Auto)] - extern static int GetModuleFileName(IntPtr hModule, StringBuilder strFullPath, int nSize); -#endif - - /// <summary> - /// This is an optional runtime check to ensure that the dlls are the correct version. Returns false only if the steam_api.dll is found and it's the wrong size or version number. - /// </summary> - public static bool Test() { -#if DISABLED - bool ret = CheckSteamAPIDLL(); -#endif - return true; - } - -#if DISABLED - private static bool CheckSteamAPIDLL() { - string fileName; - int fileBytes; - if (IntPtr.Size == 4) { - fileName = "steam_api.dll"; - fileBytes = Version.SteamAPIDLLSize; - } - else { - fileName = "steam_api64.dll"; - fileBytes = Version.SteamAPI64DLLSize; - } - - IntPtr handle = GetModuleHandle(fileName); - if (handle == IntPtr.Zero) { - return true; - } - - StringBuilder filePath = new StringBuilder(256); - GetModuleFileName(handle, filePath, filePath.Capacity); - string file = filePath.ToString(); - - // If we can not find the file we'll just skip it and let the DllNotFoundException take care of it. - if (System.IO.File.Exists(file)) { - System.IO.FileInfo fInfo = new System.IO.FileInfo(file); - if (fInfo.Length != fileBytes) { - return false; - } - - if (System.Diagnostics.FileVersionInfo.GetVersionInfo(file).FileVersion != Version.SteamAPIDLLVersion) { - return false; - } - } - return true; - } -#endif - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/InteropHelp.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/InteropHelp.cs.meta deleted file mode 100644 index 8dedcf8..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/InteropHelp.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7521a262d02c9ee47a1f08824a22b094 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Packsize.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Packsize.cs deleted file mode 100644 index 3b2efb0..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Packsize.cs +++ /dev/null @@ -1,71 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) -#define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -// If we're running in the Unity Editor we need the editors platform. -#if UNITY_EDITOR_WIN - #define VALVE_CALLBACK_PACK_LARGE -#elif UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX - #define VALVE_CALLBACK_PACK_SMALL - -// Otherwise we want the target platform. -#elif UNITY_STANDALONE_WIN || STEAMWORKS_WIN - #define VALVE_CALLBACK_PACK_LARGE -#elif UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_LIN_OSX - #define VALVE_CALLBACK_PACK_SMALL - -// We do not want to throw a warning when we're building in Unity but for an unsupported platform. So we'll silently let this slip by. -// It would be nice if Unity itself would define 'UNITY' or something like that... -#elif UNITY_3_5 || UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7 || UNITY_5 || UNITY_2017_1_OR_NEWER - #define VALVE_CALLBACK_PACK_SMALL - -// But we do want to be explicit on the Standalone build for XNA/Monogame. -#else - #define VALVE_CALLBACK_PACK_LARGE - #warning You need to define STEAMWORKS_WIN, or STEAMWORKS_LIN_OSX. Refer to the readme for more details. -#endif - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class Packsize { -#if VALVE_CALLBACK_PACK_LARGE - public const int value = 8; -#elif VALVE_CALLBACK_PACK_SMALL - public const int value = 4; -#endif - - public static bool Test() { - int sentinelSize = Marshal.SizeOf(typeof(ValvePackingSentinel_t)); - int subscribedFilesSize = Marshal.SizeOf(typeof(RemoteStorageEnumerateUserSubscribedFilesResult_t)); -#if VALVE_CALLBACK_PACK_LARGE - if (sentinelSize != 32 || subscribedFilesSize != (1 + 1 + 1 + 50 + 100) * 4 + 4) - return false; -#elif VALVE_CALLBACK_PACK_SMALL - if (sentinelSize != 24 || subscribedFilesSize != (1 + 1 + 1 + 50 + 100) * 4) - return false; -#endif - return true; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - struct ValvePackingSentinel_t { - uint m_u32; - ulong m_u64; - ushort m_u16; - double m_d; - }; - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Packsize.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Packsize.cs.meta deleted file mode 100644 index 3d78af9..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Packsize.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c871c983f47850a41a28b6c09b5d9542 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Steam.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Steam.cs deleted file mode 100644 index 5141233..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Steam.cs +++ /dev/null @@ -1,568 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) -#define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamAPI { - //----------------------------------------------------------------------------------------------------------------------------------------------------------// - // Steam API setup & shutdown - // - // These functions manage loading, initializing and shutdown of the steamclient.dll - // - //----------------------------------------------------------------------------------------------------------------------------------------------------------// - - - // SteamAPI_Init must be called before using any other API functions. If it fails, an - // error message will be output to the debugger (or stderr) with further information. - public static bool Init() { - InteropHelp.TestIfPlatformSupported(); - - bool ret = NativeMethods.SteamAPI_Init(); - - // Steamworks.NET specific: We initialize the SteamAPI Context like this for now, but we need to do it - // every time that Unity reloads binaries, so we also check if the pointers are available and initialized - // before each call to any interface functions. That is in InteropHelp.cs - if (ret) { - ret = CSteamAPIContext.Init(); - } - - if (ret) { - CallbackDispatcher.Initialize(); - } - - return ret; - } - - // SteamAPI_Shutdown should be called during process shutdown if possible. - public static void Shutdown() { - InteropHelp.TestIfPlatformSupported(); - NativeMethods.SteamAPI_Shutdown(); - CSteamAPIContext.Clear(); - CallbackDispatcher.Shutdown(); - } - - // SteamAPI_RestartAppIfNecessary ensures that your executable was launched through Steam. - // - // Returns true if the current process should terminate. Steam is now re-launching your application. - // - // Returns false if no action needs to be taken. This means that your executable was started through - // the Steam client, or a steam_appid.txt file is present in your game's directory (for development). - // Your current process should continue if false is returned. - // - // NOTE: If you use the Steam DRM wrapper on your primary executable file, this check is unnecessary - // since the DRM wrapper will ensure that your application was launched properly through Steam. - public static bool RestartAppIfNecessary(AppId_t unOwnAppID) { - InteropHelp.TestIfPlatformSupported(); - return NativeMethods.SteamAPI_RestartAppIfNecessary(unOwnAppID); - } - - // Many Steam API functions allocate a small amount of thread-local memory for parameter storage. - // SteamAPI_ReleaseCurrentThreadMemory() will free API memory associated with the calling thread. - // This function is also called automatically by SteamAPI_RunCallbacks(), so a single-threaded - // program never needs to explicitly call this function. - public static void ReleaseCurrentThreadMemory() { - InteropHelp.TestIfPlatformSupported(); - NativeMethods.SteamAPI_ReleaseCurrentThreadMemory(); - } - - //----------------------------------------------------------------------------------------------------------------------------------------------------------// - // steam callback and call-result helpers - // - // The following macros and classes are used to register your application for - // callbacks and call-results, which are delivered in a predictable manner. - // - // STEAM_CALLBACK macros are meant for use inside of a C++ class definition. - // They map a Steam notification callback directly to a class member function - // which is automatically prototyped as "void func( callback_type *pParam )". - // - // CCallResult is used with specific Steam APIs that return "result handles". - // The handle can be passed to a CCallResult object's Set function, along with - // an object pointer and member-function pointer. The member function will - // be executed once the results of the Steam API call are available. - // - // CCallback and CCallbackManual classes can be used instead of STEAM_CALLBACK - // macros if you require finer control over registration and unregistration. - // - // Callbacks and call-results are queued automatically and are only - // delivered/executed when your application calls SteamAPI_RunCallbacks(). - // - // Note that there is an alternative, lower level callback dispatch mechanism. - // See SteamAPI_ManualDispatch_Init - //----------------------------------------------------------------------------------------------------------------------------------------------------------// - - // Dispatch all queued Steamworks callbacks. - // - // This is safe to call from multiple threads simultaneously, - // but if you choose to do this, callback code could be executed on any thread. - // One alternative is to call SteamAPI_RunCallbacks from the main thread only, - // and call SteamAPI_ReleaseCurrentThreadMemory regularly on other threads. - public static void RunCallbacks() { - CallbackDispatcher.RunFrame(false); - } - - //----------------------------------------------------------------------------------------------------------------------------------------------------------// - // steamclient.dll private wrapper functions - // - // The following functions are part of abstracting API access to the steamclient.dll, but should only be used in very specific cases - //----------------------------------------------------------------------------------------------------------------------------------------------------------// - - // SteamAPI_IsSteamRunning() returns true if Steam is currently running - public static bool IsSteamRunning() { - InteropHelp.TestIfPlatformSupported(); - return NativeMethods.SteamAPI_IsSteamRunning(); - } - - // returns the pipe we are communicating to Steam with - public static HSteamPipe GetHSteamPipe() { - InteropHelp.TestIfPlatformSupported(); - return (HSteamPipe)NativeMethods.SteamAPI_GetHSteamPipe(); - } - - public static HSteamUser GetHSteamUser() { - InteropHelp.TestIfPlatformSupported(); - return (HSteamUser)NativeMethods.SteamAPI_GetHSteamUser(); - } - } - - public static class GameServer { - // Initialize SteamGameServer client and interface objects, and set server properties which may not be changed. - // - // After calling this function, you should set any additional server parameters, and then - // call ISteamGameServer::LogOnAnonymous() or ISteamGameServer::LogOn() - // - // - unIP will usually be zero. If you are on a machine with multiple IP addresses, you can pass a non-zero - // value here and the relevant sockets will be bound to that IP. This can be used to ensure that - // the IP you desire is the one used in the server browser. - // - usGamePort is the port that clients will connect to for gameplay. You will usually open up your - // own socket bound to this port. - // - usQueryPort is the port that will manage server browser related duties and info - // pings from clients. If you pass STEAMGAMESERVER_QUERY_PORT_SHARED for usQueryPort, then it - // will use "GameSocketShare" mode, which means that the game is responsible for sending and receiving - // UDP packets for the master server updater. (See ISteamGameServer::HandleIncomingPacket and - // ISteamGameServer::GetNextOutgoingPacket.) - // - The version string should be in the form x.x.x.x, and is used by the master server to detect when the - // server is out of date. (Only servers with the latest version will be listed.) - public static bool Init(uint unIP, ushort usGamePort, ushort usQueryPort, EServerMode eServerMode, string pchVersionString) { - InteropHelp.TestIfPlatformSupported(); - - bool ret; - using (var pchVersionString2 = new InteropHelp.UTF8StringHandle(pchVersionString)) { - ret = NativeMethods.SteamInternal_GameServer_Init(unIP, 0, usGamePort, usQueryPort, eServerMode, pchVersionString2); - } - - // Steamworks.NET specific: We initialize the SteamAPI Context like this for now, but we need to do it - // every time that Unity reloads binaries, so we also check if the pointers are available and initialized - // before each call to any interface functions. That is in InteropHelp.cs - if (ret) { - ret = CSteamGameServerAPIContext.Init(); - } - - if (ret) { - CallbackDispatcher.Initialize(); - } - - return ret; - } - - // Shutdown SteamGameSeverXxx interfaces, log out, and free resources. - public static void Shutdown() { - InteropHelp.TestIfPlatformSupported(); - NativeMethods.SteamGameServer_Shutdown(); - CSteamGameServerAPIContext.Clear(); - CallbackDispatcher.Shutdown(); - } - - public static void RunCallbacks() { - CallbackDispatcher.RunFrame(true); - } - - // Most Steam API functions allocate some amount of thread-local memory for - // parameter storage. Calling SteamGameServer_ReleaseCurrentThreadMemory() - // will free all API-related memory associated with the calling thread. - // This memory is released automatically by SteamGameServer_RunCallbacks(), - // so single-threaded servers do not need to explicitly call this function. - public static void ReleaseCurrentThreadMemory() { - InteropHelp.TestIfPlatformSupported(); - NativeMethods.SteamGameServer_ReleaseCurrentThreadMemory(); - } - - public static bool BSecure() { - InteropHelp.TestIfPlatformSupported(); - return NativeMethods.SteamGameServer_BSecure(); - } - - public static CSteamID GetSteamID() { - InteropHelp.TestIfPlatformSupported(); - return (CSteamID)NativeMethods.SteamGameServer_GetSteamID(); - } - - public static HSteamPipe GetHSteamPipe() { - InteropHelp.TestIfPlatformSupported(); - return (HSteamPipe)NativeMethods.SteamGameServer_GetHSteamPipe(); - } - - public static HSteamUser GetHSteamUser() { - InteropHelp.TestIfPlatformSupported(); - return (HSteamUser)NativeMethods.SteamGameServer_GetHSteamUser(); - } - } - - public static class SteamEncryptedAppTicket { - public static bool BDecryptTicket(byte[] rgubTicketEncrypted, uint cubTicketEncrypted, byte[] rgubTicketDecrypted, ref uint pcubTicketDecrypted, byte[] rgubKey, int cubKey) { - InteropHelp.TestIfPlatformSupported(); - return NativeMethods.SteamEncryptedAppTicket_BDecryptTicket(rgubTicketEncrypted, cubTicketEncrypted, rgubTicketDecrypted, ref pcubTicketDecrypted, rgubKey, cubKey); - } - - public static bool BIsTicketForApp(byte[] rgubTicketDecrypted, uint cubTicketDecrypted, AppId_t nAppID) { - InteropHelp.TestIfPlatformSupported(); - return NativeMethods.SteamEncryptedAppTicket_BIsTicketForApp(rgubTicketDecrypted, cubTicketDecrypted, nAppID); - } - - public static uint GetTicketIssueTime(byte[] rgubTicketDecrypted, uint cubTicketDecrypted) { - InteropHelp.TestIfPlatformSupported(); - return NativeMethods.SteamEncryptedAppTicket_GetTicketIssueTime(rgubTicketDecrypted, cubTicketDecrypted); - } - - public static void GetTicketSteamID(byte[] rgubTicketDecrypted, uint cubTicketDecrypted, out CSteamID psteamID) { - InteropHelp.TestIfPlatformSupported(); - NativeMethods.SteamEncryptedAppTicket_GetTicketSteamID(rgubTicketDecrypted, cubTicketDecrypted, out psteamID); - } - - public static uint GetTicketAppID(byte[] rgubTicketDecrypted, uint cubTicketDecrypted) { - InteropHelp.TestIfPlatformSupported(); - return NativeMethods.SteamEncryptedAppTicket_GetTicketAppID(rgubTicketDecrypted, cubTicketDecrypted); - } - - public static bool BUserOwnsAppInTicket(byte[] rgubTicketDecrypted, uint cubTicketDecrypted, AppId_t nAppID) { - InteropHelp.TestIfPlatformSupported(); - return NativeMethods.SteamEncryptedAppTicket_BUserOwnsAppInTicket(rgubTicketDecrypted, cubTicketDecrypted, nAppID); - } - - public static bool BUserIsVacBanned(byte[] rgubTicketDecrypted, uint cubTicketDecrypted) { - InteropHelp.TestIfPlatformSupported(); - return NativeMethods.SteamEncryptedAppTicket_BUserIsVacBanned(rgubTicketDecrypted, cubTicketDecrypted); - } - - public static byte[] GetUserVariableData(byte[] rgubTicketDecrypted, uint cubTicketDecrypted, out uint pcubUserData) { - InteropHelp.TestIfPlatformSupported(); - IntPtr punSecretData = NativeMethods.SteamEncryptedAppTicket_GetUserVariableData(rgubTicketDecrypted, cubTicketDecrypted, out pcubUserData); - byte[] ret = new byte[pcubUserData]; - System.Runtime.InteropServices.Marshal.Copy(punSecretData, ret, 0, (int)pcubUserData); - return ret; - } - - public static bool BIsTicketSigned(byte[] rgubTicketDecrypted, uint cubTicketDecrypted, byte[] pubRSAKey, uint cubRSAKey) { - InteropHelp.TestIfPlatformSupported(); - return NativeMethods.SteamEncryptedAppTicket_BIsTicketSigned(rgubTicketDecrypted, cubTicketDecrypted, pubRSAKey, cubRSAKey); - } - } - - internal static class CSteamAPIContext { - internal static void Clear() { - m_pSteamClient = IntPtr.Zero; - m_pSteamUser = IntPtr.Zero; - m_pSteamFriends = IntPtr.Zero; - m_pSteamUtils = IntPtr.Zero; - m_pSteamMatchmaking = IntPtr.Zero; - m_pSteamUserStats = IntPtr.Zero; - m_pSteamApps = IntPtr.Zero; - m_pSteamMatchmakingServers = IntPtr.Zero; - m_pSteamNetworking = IntPtr.Zero; - m_pSteamRemoteStorage = IntPtr.Zero; - m_pSteamHTTP = IntPtr.Zero; - m_pSteamScreenshots = IntPtr.Zero; - m_pSteamGameSearch = IntPtr.Zero; - m_pSteamMusic = IntPtr.Zero; - m_pController = IntPtr.Zero; - m_pSteamUGC = IntPtr.Zero; - m_pSteamAppList = IntPtr.Zero; - m_pSteamMusic = IntPtr.Zero; - m_pSteamMusicRemote = IntPtr.Zero; - m_pSteamHTMLSurface = IntPtr.Zero; - m_pSteamInventory = IntPtr.Zero; - m_pSteamVideo = IntPtr.Zero; - m_pSteamParentalSettings = IntPtr.Zero; - m_pSteamInput = IntPtr.Zero; - m_pSteamParties = IntPtr.Zero; - m_pSteamRemotePlay = IntPtr.Zero; - m_pSteamNetworkingUtils = IntPtr.Zero; - m_pSteamNetworkingSockets = IntPtr.Zero; - m_pSteamNetworkingMessages = IntPtr.Zero; - } - - internal static bool Init() { - HSteamUser hSteamUser = SteamAPI.GetHSteamUser(); - HSteamPipe hSteamPipe = SteamAPI.GetHSteamPipe(); - if (hSteamPipe == (HSteamPipe)0) { return false; } - - using (var pchVersionString = new InteropHelp.UTF8StringHandle(Constants.STEAMCLIENT_INTERFACE_VERSION)) { - m_pSteamClient = NativeMethods.SteamInternal_CreateInterface(pchVersionString); - } - - if (m_pSteamClient == IntPtr.Zero) { return false; } - - m_pSteamUser = SteamClient.GetISteamUser(hSteamUser, hSteamPipe, Constants.STEAMUSER_INTERFACE_VERSION); - if (m_pSteamUser == IntPtr.Zero) { return false; } - - m_pSteamFriends = SteamClient.GetISteamFriends(hSteamUser, hSteamPipe, Constants.STEAMFRIENDS_INTERFACE_VERSION); - if (m_pSteamFriends == IntPtr.Zero) { return false; } - - m_pSteamUtils = SteamClient.GetISteamUtils(hSteamPipe, Constants.STEAMUTILS_INTERFACE_VERSION); - if (m_pSteamUtils == IntPtr.Zero) { return false; } - - m_pSteamMatchmaking = SteamClient.GetISteamMatchmaking(hSteamUser, hSteamPipe, Constants.STEAMMATCHMAKING_INTERFACE_VERSION); - if (m_pSteamMatchmaking == IntPtr.Zero) { return false; } - - m_pSteamMatchmakingServers = SteamClient.GetISteamMatchmakingServers(hSteamUser, hSteamPipe, Constants.STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION); - if (m_pSteamMatchmakingServers == IntPtr.Zero) { return false; } - - m_pSteamUserStats = SteamClient.GetISteamUserStats(hSteamUser, hSteamPipe, Constants.STEAMUSERSTATS_INTERFACE_VERSION); - if (m_pSteamUserStats == IntPtr.Zero) { return false; } - - m_pSteamApps = SteamClient.GetISteamApps(hSteamUser, hSteamPipe, Constants.STEAMAPPS_INTERFACE_VERSION); - if (m_pSteamApps == IntPtr.Zero) { return false; } - - m_pSteamNetworking = SteamClient.GetISteamNetworking(hSteamUser, hSteamPipe, Constants.STEAMNETWORKING_INTERFACE_VERSION); - if (m_pSteamNetworking == IntPtr.Zero) { return false; } - - m_pSteamRemoteStorage = SteamClient.GetISteamRemoteStorage(hSteamUser, hSteamPipe, Constants.STEAMREMOTESTORAGE_INTERFACE_VERSION); - if (m_pSteamRemoteStorage == IntPtr.Zero) { return false; } - - m_pSteamScreenshots = SteamClient.GetISteamScreenshots(hSteamUser, hSteamPipe, Constants.STEAMSCREENSHOTS_INTERFACE_VERSION); - if (m_pSteamScreenshots == IntPtr.Zero) { return false; } - - m_pSteamGameSearch = SteamClient.GetISteamGameSearch(hSteamUser, hSteamPipe, Constants.STEAMGAMESEARCH_INTERFACE_VERSION); - if (m_pSteamGameSearch == IntPtr.Zero) { return false; } - - m_pSteamHTTP = SteamClient.GetISteamHTTP(hSteamUser, hSteamPipe, Constants.STEAMHTTP_INTERFACE_VERSION); - if (m_pSteamHTTP == IntPtr.Zero) { return false; } - - m_pSteamUGC = SteamClient.GetISteamUGC(hSteamUser, hSteamPipe, Constants.STEAMUGC_INTERFACE_VERSION); - if (m_pSteamUGC == IntPtr.Zero) { return false; } - - m_pSteamAppList = SteamClient.GetISteamAppList(hSteamUser, hSteamPipe, Constants.STEAMAPPLIST_INTERFACE_VERSION); - if (m_pSteamAppList == IntPtr.Zero) { return false; } - - m_pSteamMusic = SteamClient.GetISteamMusic(hSteamUser, hSteamPipe, Constants.STEAMMUSIC_INTERFACE_VERSION); - if (m_pSteamMusic == IntPtr.Zero) { return false; } - - m_pSteamMusicRemote = SteamClient.GetISteamMusicRemote(hSteamUser, hSteamPipe, Constants.STEAMMUSICREMOTE_INTERFACE_VERSION); - if (m_pSteamMusicRemote == IntPtr.Zero) { return false; } - - m_pSteamHTMLSurface = SteamClient.GetISteamHTMLSurface(hSteamUser, hSteamPipe, Constants.STEAMHTMLSURFACE_INTERFACE_VERSION); - if (m_pSteamHTMLSurface == IntPtr.Zero) { return false; } - - m_pSteamInventory = SteamClient.GetISteamInventory(hSteamUser, hSteamPipe, Constants.STEAMINVENTORY_INTERFACE_VERSION); - if (m_pSteamInventory == IntPtr.Zero) { return false; } - - m_pSteamVideo = SteamClient.GetISteamVideo(hSteamUser, hSteamPipe, Constants.STEAMVIDEO_INTERFACE_VERSION); - if (m_pSteamVideo == IntPtr.Zero) { return false; } - - m_pSteamParentalSettings = SteamClient.GetISteamParentalSettings(hSteamUser, hSteamPipe, Constants.STEAMPARENTALSETTINGS_INTERFACE_VERSION); - if (m_pSteamParentalSettings == IntPtr.Zero) { return false; } - - m_pSteamInput = SteamClient.GetISteamInput(hSteamUser, hSteamPipe, Constants.STEAMINPUT_INTERFACE_VERSION); - if (m_pSteamInput == IntPtr.Zero) { return false; } - - m_pSteamParties = SteamClient.GetISteamParties(hSteamUser, hSteamPipe, Constants.STEAMPARTIES_INTERFACE_VERSION); - if (m_pSteamParties == IntPtr.Zero) { return false; } - - m_pSteamRemotePlay = SteamClient.GetISteamRemotePlay(hSteamUser, hSteamPipe, Constants.STEAMREMOTEPLAY_INTERFACE_VERSION); - if (m_pSteamRemotePlay == IntPtr.Zero) { return false; } - - using (var pchVersionString = new InteropHelp.UTF8StringHandle(Constants.STEAMNETWORKINGUTILS_INTERFACE_VERSION)) - { - m_pSteamNetworkingUtils = - NativeMethods.SteamInternal_FindOrCreateUserInterface(hSteamUser, pchVersionString) != IntPtr.Zero ? - NativeMethods.SteamInternal_FindOrCreateUserInterface(hSteamUser, pchVersionString) : - NativeMethods.SteamInternal_FindOrCreateGameServerInterface(hSteamUser, pchVersionString); - } - if (m_pSteamNetworkingUtils == IntPtr.Zero) { return false; } - - using (var pchVersionString = new InteropHelp.UTF8StringHandle(Constants.STEAMNETWORKINGSOCKETS_INTERFACE_VERSION)) - { - m_pSteamNetworkingSockets = - NativeMethods.SteamInternal_FindOrCreateUserInterface(hSteamUser, pchVersionString); - } - if (m_pSteamNetworkingSockets == IntPtr.Zero) { return false; } - - using (var pchVersionString = new InteropHelp.UTF8StringHandle(Constants.STEAMNETWORKINGMESSAGES_INTERFACE_VERSION)) - { - m_pSteamNetworkingMessages = - NativeMethods.SteamInternal_FindOrCreateUserInterface(hSteamUser, pchVersionString); - } - if (m_pSteamNetworkingMessages == IntPtr.Zero) { return false; } - - return true; - } - - internal static IntPtr GetSteamClient() { return m_pSteamClient; } - internal static IntPtr GetSteamUser() { return m_pSteamUser; } - internal static IntPtr GetSteamFriends() { return m_pSteamFriends; } - internal static IntPtr GetSteamUtils() { return m_pSteamUtils; } - internal static IntPtr GetSteamMatchmaking() { return m_pSteamMatchmaking; } - internal static IntPtr GetSteamUserStats() { return m_pSteamUserStats; } - internal static IntPtr GetSteamApps() { return m_pSteamApps; } - internal static IntPtr GetSteamMatchmakingServers() { return m_pSteamMatchmakingServers; } - internal static IntPtr GetSteamNetworking() { return m_pSteamNetworking; } - internal static IntPtr GetSteamRemoteStorage() { return m_pSteamRemoteStorage; } - internal static IntPtr GetSteamScreenshots() { return m_pSteamScreenshots; } - internal static IntPtr GetSteamGameSearch() { return m_pSteamGameSearch; } - internal static IntPtr GetSteamHTTP() { return m_pSteamHTTP; } - internal static IntPtr GetSteamController() { return m_pController; } - internal static IntPtr GetSteamUGC() { return m_pSteamUGC; } - internal static IntPtr GetSteamAppList() { return m_pSteamAppList; } - internal static IntPtr GetSteamMusic() { return m_pSteamMusic; } - internal static IntPtr GetSteamMusicRemote() { return m_pSteamMusicRemote; } - internal static IntPtr GetSteamHTMLSurface() { return m_pSteamHTMLSurface; } - internal static IntPtr GetSteamInventory() { return m_pSteamInventory; } - internal static IntPtr GetSteamVideo() { return m_pSteamVideo; } - internal static IntPtr GetSteamParentalSettings() { return m_pSteamParentalSettings; } - internal static IntPtr GetSteamInput() { return m_pSteamInput; } - internal static IntPtr GetSteamParties() { return m_pSteamParties; } - internal static IntPtr GetSteamRemotePlay() { return m_pSteamRemotePlay; } - internal static IntPtr GetSteamNetworkingUtils() { return m_pSteamNetworkingUtils; } - internal static IntPtr GetSteamNetworkingSockets() { return m_pSteamNetworkingSockets; } - internal static IntPtr GetSteamNetworkingMessages() { return m_pSteamNetworkingMessages; } - - private static IntPtr m_pSteamClient; - private static IntPtr m_pSteamUser; - private static IntPtr m_pSteamFriends; - private static IntPtr m_pSteamUtils; - private static IntPtr m_pSteamMatchmaking; - private static IntPtr m_pSteamUserStats; - private static IntPtr m_pSteamApps; - private static IntPtr m_pSteamMatchmakingServers; - private static IntPtr m_pSteamNetworking; - private static IntPtr m_pSteamRemoteStorage; - private static IntPtr m_pSteamScreenshots; - private static IntPtr m_pSteamGameSearch; - private static IntPtr m_pSteamHTTP; - private static IntPtr m_pController; - private static IntPtr m_pSteamUGC; - private static IntPtr m_pSteamAppList; - private static IntPtr m_pSteamMusic; - private static IntPtr m_pSteamMusicRemote; - private static IntPtr m_pSteamHTMLSurface; - private static IntPtr m_pSteamInventory; - private static IntPtr m_pSteamVideo; - private static IntPtr m_pSteamParentalSettings; - private static IntPtr m_pSteamInput; - private static IntPtr m_pSteamParties; - private static IntPtr m_pSteamRemotePlay; - private static IntPtr m_pSteamNetworkingUtils; - private static IntPtr m_pSteamNetworkingSockets; - private static IntPtr m_pSteamNetworkingMessages; - } - - internal static class CSteamGameServerAPIContext { - internal static void Clear() { - m_pSteamClient = IntPtr.Zero; - m_pSteamGameServer = IntPtr.Zero; - m_pSteamUtils = IntPtr.Zero; - m_pSteamNetworking = IntPtr.Zero; - m_pSteamGameServerStats = IntPtr.Zero; - m_pSteamHTTP = IntPtr.Zero; - m_pSteamInventory = IntPtr.Zero; - m_pSteamUGC = IntPtr.Zero; - m_pSteamNetworkingUtils = IntPtr.Zero; - m_pSteamNetworkingSockets = IntPtr.Zero; - m_pSteamNetworkingMessages = IntPtr.Zero; - } - - internal static bool Init() { - HSteamUser hSteamUser = GameServer.GetHSteamUser(); - HSteamPipe hSteamPipe = GameServer.GetHSteamPipe(); - if (hSteamPipe == (HSteamPipe)0) { return false; } - - using (var pchVersionString = new InteropHelp.UTF8StringHandle(Constants.STEAMCLIENT_INTERFACE_VERSION)) { - m_pSteamClient = NativeMethods.SteamInternal_CreateInterface(pchVersionString); - } - if (m_pSteamClient == IntPtr.Zero) { return false; } - - m_pSteamGameServer = SteamGameServerClient.GetISteamGameServer(hSteamUser, hSteamPipe, Constants.STEAMGAMESERVER_INTERFACE_VERSION); - if (m_pSteamGameServer == IntPtr.Zero) { return false; } - - m_pSteamUtils = SteamGameServerClient.GetISteamUtils(hSteamPipe, Constants.STEAMUTILS_INTERFACE_VERSION); - if (m_pSteamUtils == IntPtr.Zero) { return false; } - - m_pSteamNetworking = SteamGameServerClient.GetISteamNetworking(hSteamUser, hSteamPipe, Constants.STEAMNETWORKING_INTERFACE_VERSION); - if (m_pSteamNetworking == IntPtr.Zero) { return false; } - - m_pSteamGameServerStats = SteamGameServerClient.GetISteamGameServerStats(hSteamUser, hSteamPipe, Constants.STEAMGAMESERVERSTATS_INTERFACE_VERSION); - if (m_pSteamGameServerStats == IntPtr.Zero) { return false; } - - m_pSteamHTTP = SteamGameServerClient.GetISteamHTTP(hSteamUser, hSteamPipe, Constants.STEAMHTTP_INTERFACE_VERSION); - if (m_pSteamHTTP == IntPtr.Zero) { return false; } - - m_pSteamInventory = SteamGameServerClient.GetISteamInventory(hSteamUser, hSteamPipe, Constants.STEAMINVENTORY_INTERFACE_VERSION); - if (m_pSteamInventory == IntPtr.Zero) { return false; } - - m_pSteamUGC = SteamGameServerClient.GetISteamUGC(hSteamUser, hSteamPipe, Constants.STEAMUGC_INTERFACE_VERSION); - if (m_pSteamUGC == IntPtr.Zero) { return false; } - - using (var pchVersionString = new InteropHelp.UTF8StringHandle(Constants.STEAMNETWORKINGUTILS_INTERFACE_VERSION)) - { - m_pSteamNetworkingUtils = - NativeMethods.SteamInternal_FindOrCreateUserInterface(hSteamUser, pchVersionString) != IntPtr.Zero ? - NativeMethods.SteamInternal_FindOrCreateUserInterface(hSteamUser, pchVersionString) : - NativeMethods.SteamInternal_FindOrCreateGameServerInterface(hSteamUser, pchVersionString); - } - if (m_pSteamNetworkingUtils == IntPtr.Zero) { return false; } - - using (var pchVersionString = new InteropHelp.UTF8StringHandle(Constants.STEAMNETWORKINGSOCKETS_INTERFACE_VERSION)) - { - m_pSteamNetworkingSockets = - NativeMethods.SteamInternal_FindOrCreateGameServerInterface(hSteamUser, pchVersionString); - } - if (m_pSteamNetworkingSockets == IntPtr.Zero) { return false; } - - using (var pchVersionString = new InteropHelp.UTF8StringHandle(Constants.STEAMNETWORKINGMESSAGES_INTERFACE_VERSION)) - { - m_pSteamNetworkingMessages = - NativeMethods.SteamInternal_FindOrCreateGameServerInterface(hSteamUser, pchVersionString); - } - if (m_pSteamNetworkingMessages == IntPtr.Zero) { return false; } - - return true; - } - - internal static IntPtr GetSteamClient() { return m_pSteamClient; } - internal static IntPtr GetSteamGameServer() { return m_pSteamGameServer; } - internal static IntPtr GetSteamUtils() { return m_pSteamUtils; } - internal static IntPtr GetSteamNetworking() { return m_pSteamNetworking; } - internal static IntPtr GetSteamGameServerStats() { return m_pSteamGameServerStats; } - internal static IntPtr GetSteamHTTP() { return m_pSteamHTTP; } - internal static IntPtr GetSteamInventory() { return m_pSteamInventory; } - internal static IntPtr GetSteamUGC() { return m_pSteamUGC; } - internal static IntPtr GetSteamNetworkingUtils() { return m_pSteamNetworkingUtils; } - internal static IntPtr GetSteamNetworkingSockets() { return m_pSteamNetworkingSockets; } - internal static IntPtr GetSteamNetworkingMessages() { return m_pSteamNetworkingMessages; } - - private static IntPtr m_pSteamClient; - private static IntPtr m_pSteamGameServer; - private static IntPtr m_pSteamUtils; - private static IntPtr m_pSteamNetworking; - private static IntPtr m_pSteamGameServerStats; - private static IntPtr m_pSteamHTTP; - private static IntPtr m_pSteamInventory; - private static IntPtr m_pSteamUGC; - private static IntPtr m_pSteamNetworkingUtils; - private static IntPtr m_pSteamNetworkingSockets; - private static IntPtr m_pSteamNetworkingMessages; - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Steam.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Steam.cs.meta deleted file mode 100644 index 58d78df..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Steam.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3c098e483776b9b4e9d4fd8af8558ba1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Version.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Version.cs deleted file mode 100644 index 387af1f..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Version.cs +++ /dev/null @@ -1,24 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) -#define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -namespace Steamworks { - public static class Version { - public const string SteamworksNETVersion = "20.2.0"; - public const string SteamworksSDKVersion = "1.57"; - public const string SteamAPIDLLVersion = "08.02.21.95"; - public const int SteamAPIDLLSize = 266600; - public const int SteamAPI64DLLSize = 298856; - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Version.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Version.cs.meta deleted file mode 100644 index d3eafce..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/Version.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 392a7b7ab9d780b4ea56fa9efbd249af -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen.meta deleted file mode 100644 index 4526f9c..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1214e34c8204bed46a26ab9d7f6b5a7b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/NativeMethods.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/NativeMethods.cs deleted file mode 100644 index 80f45a0..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/NativeMethods.cs +++ /dev/null @@ -1,3337 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -#if UNITY_EDITOR_64 || (UNITY_STANDALONE && !UNITY_EDITOR && UNITY_64) - #define STEAMWORKS_X64 -#elif UNITY_EDITOR_32 || (UNITY_STANDALONE && !UNITY_EDITOR && !UNITY_64) - #define STEAMWORKS_X86 -#endif - -#if UNITY_EDITOR_WIN - #define STEAMWORKS_WIN -#elif UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX - #define STEAMWORKS_LIN_OSX -#elif UNITY_STANDALONE_WIN - #define STEAMWORKS_WIN -#elif UNITY_STANDALONE_OSX || UNITY_STANDALONE_LINUX - #define STEAMWORKS_LIN_OSX -#endif - -#if !STEAMWORKS_WIN && !STEAMWORKS_LIN_OSX - #error You must define STEAMWORKS_WIN or STEAMWORKS_LIN_OSX if you're not using Unity. -#endif - -#define STEAMNETWORKINGSOCKETS_ENABLE_SDR - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Security.SuppressUnmanagedCodeSecurity()] - internal static class NativeMethods { -#if STEAMWORKS_WIN && STEAMWORKS_X64 - internal const string NativeLibraryName = "steam_api64"; - internal const string NativeLibrary_SDKEncryptedAppTicket = "sdkencryptedappticket64"; -#else - internal const string NativeLibraryName = "steam_api"; - internal const string NativeLibrary_SDKEncryptedAppTicket = "sdkencryptedappticket"; -#endif - -#region steam_api.h - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_Init", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_Init(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_Shutdown", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_Shutdown(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_RestartAppIfNecessary", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_RestartAppIfNecessary(AppId_t unOwnAppID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ReleaseCurrentThreadMemory", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_ReleaseCurrentThreadMemory(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_WriteMiniDump", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_WriteMiniDump(uint uStructuredExceptionCode, IntPtr pvExceptionInfo, uint uBuildID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SetMiniDumpComment", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SetMiniDumpComment(InteropHelp.UTF8StringHandle pchMsg); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_RunCallbacks", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_RunCallbacks(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_RegisterCallback", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_RegisterCallback(IntPtr pCallback, int iCallback); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_UnregisterCallback", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_UnregisterCallback(IntPtr pCallback); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_RegisterCallResult", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_RegisterCallResult(IntPtr pCallback, ulong hAPICall); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_UnregisterCallResult", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_UnregisterCallResult(IntPtr pCallback, ulong hAPICall); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_IsSteamRunning", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_IsSteamRunning(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_GetSteamInstallPath", CallingConvention = CallingConvention.Cdecl)] - public static extern int SteamAPI_GetSteamInstallPath(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_GetHSteamPipe", CallingConvention = CallingConvention.Cdecl)] - public static extern int SteamAPI_GetHSteamPipe(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SetTryCatchCallbacks", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SetTryCatchCallbacks([MarshalAs(UnmanagedType.I1)] bool bTryCatchCallbacks); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_GetHSteamUser", CallingConvention = CallingConvention.Cdecl)] - public static extern int SteamAPI_GetHSteamUser(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamInternal_ContextInit", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamInternal_ContextInit(IntPtr pContextInitData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamInternal_CreateInterface", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamInternal_CreateInterface(InteropHelp.UTF8StringHandle ver); - - [DllImport(NativeLibraryName, EntryPoint = "SteamInternal_FindOrCreateUserInterface", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamInternal_FindOrCreateUserInterface(HSteamUser hSteamUser, InteropHelp.UTF8StringHandle pszVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamInternal_FindOrCreateGameServerInterface", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamInternal_FindOrCreateGameServerInterface(HSteamUser hSteamUser, InteropHelp.UTF8StringHandle pszVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_UseBreakpadCrashHandler", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_UseBreakpadCrashHandler(InteropHelp.UTF8StringHandle pchVersion, InteropHelp.UTF8StringHandle pchDate, InteropHelp.UTF8StringHandle pchTime, [MarshalAs(UnmanagedType.I1)] bool bFullMemoryDumps, IntPtr pvContext, IntPtr m_pfnPreMinidumpCallback); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SetBreakpadAppID", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SetBreakpadAppID(uint unAppID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ManualDispatch_Init", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_ManualDispatch_Init(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ManualDispatch_RunFrame", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_ManualDispatch_RunFrame(HSteamPipe hSteamPipe); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ManualDispatch_GetNextCallback", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_ManualDispatch_GetNextCallback(HSteamPipe hSteamPipe, IntPtr pCallbackMsg); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ManualDispatch_FreeLastCallback", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_ManualDispatch_FreeLastCallback(HSteamPipe hSteamPipe); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ManualDispatch_GetAPICallResult", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_ManualDispatch_GetAPICallResult(HSteamPipe hSteamPipe, SteamAPICall_t hSteamAPICall, IntPtr pCallback, int cubCallback, int iCallbackExpected, out bool pbFailed); -#endregion -#region steam_gameserver.h - [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_Shutdown", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamGameServer_Shutdown(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_RunCallbacks", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamGameServer_RunCallbacks(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_ReleaseCurrentThreadMemory", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamGameServer_ReleaseCurrentThreadMemory(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_BSecure", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamGameServer_BSecure(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_GetSteamID", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong SteamGameServer_GetSteamID(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_GetHSteamPipe", CallingConvention = CallingConvention.Cdecl)] - public static extern int SteamGameServer_GetHSteamPipe(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_GetHSteamUser", CallingConvention = CallingConvention.Cdecl)] - public static extern int SteamGameServer_GetHSteamUser(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamInternal_GameServer_Init", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamInternal_GameServer_Init(uint unIP, ushort usPort, ushort usGamePort, ushort usQueryPort, EServerMode eServerMode, InteropHelp.UTF8StringHandle pchVersionString); -#endregion -#region SteamAPI Accessors - [DllImport(NativeLibraryName, EntryPoint = "SteamClient", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamClient(); - - [DllImport(NativeLibraryName, EntryPoint = "SteamGameServerClient", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamGameServerClient(); -#endregion -#region SteamNetworkingIPAddr Accessors - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_Clear", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIPAddr_Clear(ref SteamNetworkingIPAddr self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_IsIPv6AllZeros", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIPAddr_IsIPv6AllZeros(ref SteamNetworkingIPAddr self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_SetIPv6", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIPAddr_SetIPv6(ref SteamNetworkingIPAddr self, [In, Out] byte[] ipv6, ushort nPort); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_SetIPv4", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIPAddr_SetIPv4(ref SteamNetworkingIPAddr self, uint nIP, ushort nPort); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_IsIPv4", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIPAddr_IsIPv4(ref SteamNetworkingIPAddr self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_GetIPv4", CallingConvention = CallingConvention.Cdecl)] - public static extern uint SteamAPI_SteamNetworkingIPAddr_GetIPv4(ref SteamNetworkingIPAddr self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_SetIPv6LocalHost", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIPAddr_SetIPv6LocalHost(ref SteamNetworkingIPAddr self, ushort nPort); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_IsLocalHost", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIPAddr_IsLocalHost(ref SteamNetworkingIPAddr self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_ToString", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIPAddr_ToString(ref SteamNetworkingIPAddr self, IntPtr buf, uint cbBuf, [MarshalAs(UnmanagedType.I1)] bool bWithPort); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_ParseString", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIPAddr_ParseString(ref SteamNetworkingIPAddr self, InteropHelp.UTF8StringHandle pszStr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_IsEqualTo", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIPAddr_IsEqualTo(ref SteamNetworkingIPAddr self, ref SteamNetworkingIPAddr x); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_GetFakeIPType", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamNetworkingFakeIPType SteamAPI_SteamNetworkingIPAddr_GetFakeIPType(ref SteamNetworkingIPAddr self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIPAddr_IsFakeIP", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIPAddr_IsFakeIP(ref SteamNetworkingIPAddr self); -#endregion -#region SteamNetworkingIdentity Accessors - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_Clear", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIdentity_Clear(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_IsInvalid", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIdentity_IsInvalid(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_SetSteamID", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIdentity_SetSteamID(ref SteamNetworkingIdentity self, ulong steamID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_GetSteamID", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong SteamAPI_SteamNetworkingIdentity_GetSteamID(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_SetSteamID64", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIdentity_SetSteamID64(ref SteamNetworkingIdentity self, ulong steamID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_GetSteamID64", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong SteamAPI_SteamNetworkingIdentity_GetSteamID64(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_SetXboxPairwiseID", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIdentity_SetXboxPairwiseID(ref SteamNetworkingIdentity self, InteropHelp.UTF8StringHandle pszString); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_GetXboxPairwiseID", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamAPI_SteamNetworkingIdentity_GetXboxPairwiseID(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_SetPSNID", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIdentity_SetPSNID(ref SteamNetworkingIdentity self, ulong id); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_GetPSNID", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong SteamAPI_SteamNetworkingIdentity_GetPSNID(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_SetStadiaID", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIdentity_SetStadiaID(ref SteamNetworkingIdentity self, ulong id); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_GetStadiaID", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong SteamAPI_SteamNetworkingIdentity_GetStadiaID(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_SetIPAddr", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamAPI_SteamNetworkingIdentity_SetIPAddr(ref SteamNetworkingIdentity self, ref SteamNetworkingIPAddr addr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_GetIPAddr", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamAPI_SteamNetworkingIdentity_GetIPAddr(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_SetIPv4Addr", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIdentity_SetIPv4Addr(ref SteamNetworkingIdentity self, uint nIPv4, ushort nPort); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_GetIPv4", CallingConvention = CallingConvention.Cdecl)] - public static extern uint SteamAPI_SteamNetworkingIdentity_GetIPv4(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_GetFakeIPType", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamNetworkingFakeIPType SteamAPI_SteamNetworkingIdentity_GetFakeIPType(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_IsFakeIP", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIdentity_IsFakeIP(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_SetLocalHost", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIdentity_SetLocalHost(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_IsLocalHost", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIdentity_IsLocalHost(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_SetGenericString", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIdentity_SetGenericString(ref SteamNetworkingIdentity self, InteropHelp.UTF8StringHandle pszString); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_GetGenericString", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamAPI_SteamNetworkingIdentity_GetGenericString(ref SteamNetworkingIdentity self); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_SetGenericBytes", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIdentity_SetGenericBytes(ref SteamNetworkingIdentity self, [In, Out] byte[] data, uint cbLen); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_GetGenericBytes", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamAPI_SteamNetworkingIdentity_GetGenericBytes(ref SteamNetworkingIdentity self, out int cbLen); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_IsEqualTo", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIdentity_IsEqualTo(ref SteamNetworkingIdentity self, ref SteamNetworkingIdentity x); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_ToString", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingIdentity_ToString(ref SteamNetworkingIdentity self, IntPtr buf, uint cbBuf); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingIdentity_ParseString", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_SteamNetworkingIdentity_ParseString(ref SteamNetworkingIdentity self, InteropHelp.UTF8StringHandle pszStr); -#endregion -#region SteamNetworkingMessage_t Accessors - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SteamNetworkingMessage_t_Release", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_SteamNetworkingMessage_t_Release(IntPtr self); -#endregion -#region ISteamNetworkingConnectionSignaling Accessors - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingConnectionSignaling_SendSignal", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamAPI_ISteamNetworkingConnectionSignaling_SendSignal(ref ISteamNetworkingConnectionSignaling self, HSteamNetConnection hConn, ref SteamNetConnectionInfo_t info, IntPtr pMsg, int cbMsg); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingConnectionSignaling_Release", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_ISteamNetworkingConnectionSignaling_Release(ref ISteamNetworkingConnectionSignaling self); -#endregion -#region ISteamNetworkingSignalingRecvContext Accessors - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSignalingRecvContext_OnConnectRequest", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamAPI_ISteamNetworkingSignalingRecvContext_OnConnectRequest(ref ISteamNetworkingSignalingRecvContext self, HSteamNetConnection hConn, ref SteamNetworkingIdentity identityPeer, int nLocalVirtualPort); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSignalingRecvContext_SendRejectionSignal", CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamAPI_ISteamNetworkingSignalingRecvContext_SendRejectionSignal(ref ISteamNetworkingSignalingRecvContext self, ref SteamNetworkingIdentity identityPeer, IntPtr pMsg, int cbMsg); -#endregion -#region steamencryptedappticket.h - [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamEncryptedAppTicket_BDecryptTicket([In, Out] byte[] rgubTicketEncrypted, uint cubTicketEncrypted, [In, Out] byte[] rgubTicketDecrypted, ref uint pcubTicketDecrypted, [MarshalAs(UnmanagedType.LPArray, SizeConst=Constants.k_nSteamEncryptedAppTicketSymmetricKeyLen)] byte[] rgubKey, int cubKey); - - [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamEncryptedAppTicket_BIsTicketForApp([In, Out] byte[] rgubTicketDecrypted, uint cubTicketDecrypted, AppId_t nAppID); - - [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SteamEncryptedAppTicket_GetTicketIssueTime([In, Out] byte[] rgubTicketDecrypted, uint cubTicketDecrypted); - - [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = CallingConvention.Cdecl)] - public static extern void SteamEncryptedAppTicket_GetTicketSteamID([In, Out] byte[] rgubTicketDecrypted, uint cubTicketDecrypted, out CSteamID psteamID); - - [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SteamEncryptedAppTicket_GetTicketAppID([In, Out] byte[] rgubTicketDecrypted, uint cubTicketDecrypted); - - [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamEncryptedAppTicket_BUserOwnsAppInTicket([In, Out] byte[] rgubTicketDecrypted, uint cubTicketDecrypted, AppId_t nAppID); - - [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamEncryptedAppTicket_BUserIsVacBanned([In, Out] byte[] rgubTicketDecrypted, uint cubTicketDecrypted); - - [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SteamEncryptedAppTicket_GetUserVariableData([In, Out] byte[] rgubTicketDecrypted, uint cubTicketDecrypted, out uint pcubUserData); - - [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamEncryptedAppTicket_BIsTicketSigned([In, Out] byte[] rgubTicketDecrypted, uint cubTicketDecrypted, [In, Out] byte[] pubRSAKey, uint cubRSAKey); - - [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamEncryptedAppTicket_BIsLicenseBorrowed([In, Out] byte[] rgubTicketDecrypted, uint cubTicketDecrypted); - - [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool SteamEncryptedAppTicket_BIsLicenseTemporary([In, Out] byte[] rgubTicketDecrypted, uint cubTicketDecrypted); -#endregion -#region SteamAppList - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamAppList_GetNumInstalledApps", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamAppList_GetNumInstalledApps(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamAppList_GetInstalledApps", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamAppList_GetInstalledApps(IntPtr instancePtr, [In, Out] AppId_t[] pvecAppID, uint unMaxAppIDs); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamAppList_GetAppName", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamAppList_GetAppName(IntPtr instancePtr, AppId_t nAppID, IntPtr pchName, int cchNameMax); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamAppList_GetAppInstallDir", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamAppList_GetAppInstallDir(IntPtr instancePtr, AppId_t nAppID, IntPtr pchDirectory, int cchNameMax); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamAppList_GetAppBuildId", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamAppList_GetAppBuildId(IntPtr instancePtr, AppId_t nAppID); -#endregion -#region SteamApps - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsSubscribed", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_BIsSubscribed(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsLowViolence", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_BIsLowViolence(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsCybercafe", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_BIsCybercafe(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsVACBanned", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_BIsVACBanned(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetCurrentGameLanguage", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamApps_GetCurrentGameLanguage(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetAvailableGameLanguages", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamApps_GetAvailableGameLanguages(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsSubscribedApp", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_BIsSubscribedApp(IntPtr instancePtr, AppId_t appID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsDlcInstalled", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_BIsDlcInstalled(IntPtr instancePtr, AppId_t appID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetEarliestPurchaseUnixTime", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamApps_GetEarliestPurchaseUnixTime(IntPtr instancePtr, AppId_t nAppID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsSubscribedFromFreeWeekend", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_BIsSubscribedFromFreeWeekend(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetDLCCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamApps_GetDLCCount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BGetDLCDataByIndex", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_BGetDLCDataByIndex(IntPtr instancePtr, int iDLC, out AppId_t pAppID, out bool pbAvailable, IntPtr pchName, int cchNameBufferSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_InstallDLC", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamApps_InstallDLC(IntPtr instancePtr, AppId_t nAppID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_UninstallDLC", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamApps_UninstallDLC(IntPtr instancePtr, AppId_t nAppID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamApps_RequestAppProofOfPurchaseKey(IntPtr instancePtr, AppId_t nAppID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetCurrentBetaName", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_GetCurrentBetaName(IntPtr instancePtr, IntPtr pchName, int cchNameBufferSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_MarkContentCorrupt", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_MarkContentCorrupt(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bMissingFilesOnly); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetInstalledDepots", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamApps_GetInstalledDepots(IntPtr instancePtr, AppId_t appID, [In, Out] DepotId_t[] pvecDepots, uint cMaxDepots); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetAppInstallDir", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamApps_GetAppInstallDir(IntPtr instancePtr, AppId_t appID, IntPtr pchFolder, uint cchFolderBufferSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsAppInstalled", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_BIsAppInstalled(IntPtr instancePtr, AppId_t appID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetAppOwner", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamApps_GetAppOwner(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetLaunchQueryParam", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamApps_GetLaunchQueryParam(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchKey); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetDlcDownloadProgress", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_GetDlcDownloadProgress(IntPtr instancePtr, AppId_t nAppID, out ulong punBytesDownloaded, out ulong punBytesTotal); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetAppBuildId", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamApps_GetAppBuildId(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_RequestAllProofOfPurchaseKeys", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamApps_RequestAllProofOfPurchaseKeys(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetFileDetails", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamApps_GetFileDetails(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszFileName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetLaunchCommandLine", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamApps_GetLaunchCommandLine(IntPtr instancePtr, IntPtr pszCommandLine, int cubCommandLine); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsSubscribedFromFamilySharing", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_BIsSubscribedFromFamilySharing(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsTimedTrial", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_BIsTimedTrial(IntPtr instancePtr, out uint punSecondsAllowed, out uint punSecondsPlayed); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_SetDlcContext", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamApps_SetDlcContext(IntPtr instancePtr, AppId_t nAppID); -#endregion -#region SteamClient - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_CreateSteamPipe", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamClient_CreateSteamPipe(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_BReleaseSteamPipe", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamClient_BReleaseSteamPipe(IntPtr instancePtr, HSteamPipe hSteamPipe); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_ConnectToGlobalUser", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamClient_ConnectToGlobalUser(IntPtr instancePtr, HSteamPipe hSteamPipe); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_CreateLocalUser", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamClient_CreateLocalUser(IntPtr instancePtr, out HSteamPipe phSteamPipe, EAccountType eAccountType); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_ReleaseUser", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamClient_ReleaseUser(IntPtr instancePtr, HSteamPipe hSteamPipe, HSteamUser hUser); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamUser", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamUser(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamGameServer", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamGameServer(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_SetLocalIPBinding", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamClient_SetLocalIPBinding(IntPtr instancePtr, ref SteamIPAddress_t unIP, ushort usPort); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamFriends", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamFriends(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamUtils", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamUtils(IntPtr instancePtr, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamMatchmaking", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamMatchmaking(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamMatchmakingServers", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamMatchmakingServers(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamGenericInterface", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamGenericInterface(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamUserStats", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamUserStats(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamGameServerStats", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamGameServerStats(IntPtr instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamApps", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamApps(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamNetworking", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamNetworking(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamRemoteStorage", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamRemoteStorage(IntPtr instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamScreenshots", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamScreenshots(IntPtr instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamGameSearch", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamGameSearch(IntPtr instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetIPCCallCount", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamClient_GetIPCCallCount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_SetWarningMessageHook", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamClient_SetWarningMessageHook(IntPtr instancePtr, SteamAPIWarningMessageHook_t pFunction); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_BShutdownIfAllPipesClosed", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamClient_BShutdownIfAllPipesClosed(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamHTTP", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamHTTP(IntPtr instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamController", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamController(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamUGC", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamUGC(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamAppList", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamAppList(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamMusic", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamMusic(IntPtr instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamMusicRemote", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamMusicRemote(IntPtr instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamHTMLSurface", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamHTMLSurface(IntPtr instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamInventory", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamInventory(IntPtr instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamVideo", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamVideo(IntPtr instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamParentalSettings", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamParentalSettings(IntPtr instancePtr, HSteamUser hSteamuser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamInput", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamInput(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamParties", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamParties(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetISteamRemotePlay", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamClient_GetISteamRemotePlay(IntPtr instancePtr, HSteamUser hSteamUser, HSteamPipe hSteamPipe, InteropHelp.UTF8StringHandle pchVersion); -#endregion -#region SteamFriends - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetPersonaName", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamFriends_GetPersonaName(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_SetPersonaName", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_SetPersonaName(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchPersonaName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetPersonaState", CallingConvention = CallingConvention.Cdecl)] - public static extern EPersonaState ISteamFriends_GetPersonaState(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetFriendCount(IntPtr instancePtr, EFriendFlags iFriendFlags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendByIndex", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_GetFriendByIndex(IntPtr instancePtr, int iFriend, EFriendFlags iFriendFlags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendRelationship", CallingConvention = CallingConvention.Cdecl)] - public static extern EFriendRelationship ISteamFriends_GetFriendRelationship(IntPtr instancePtr, CSteamID steamIDFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendPersonaState", CallingConvention = CallingConvention.Cdecl)] - public static extern EPersonaState ISteamFriends_GetFriendPersonaState(IntPtr instancePtr, CSteamID steamIDFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendPersonaName", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamFriends_GetFriendPersonaName(IntPtr instancePtr, CSteamID steamIDFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendGamePlayed", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_GetFriendGamePlayed(IntPtr instancePtr, CSteamID steamIDFriend, out FriendGameInfo_t pFriendGameInfo); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendPersonaNameHistory", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamFriends_GetFriendPersonaNameHistory(IntPtr instancePtr, CSteamID steamIDFriend, int iPersonaName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendSteamLevel", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetFriendSteamLevel(IntPtr instancePtr, CSteamID steamIDFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetPlayerNickname", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamFriends_GetPlayerNickname(IntPtr instancePtr, CSteamID steamIDPlayer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetFriendsGroupCount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupIDByIndex", CallingConvention = CallingConvention.Cdecl)] - public static extern short ISteamFriends_GetFriendsGroupIDByIndex(IntPtr instancePtr, int iFG); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupName", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamFriends_GetFriendsGroupName(IntPtr instancePtr, FriendsGroupID_t friendsGroupID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupMembersCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetFriendsGroupMembersCount(IntPtr instancePtr, FriendsGroupID_t friendsGroupID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendsGroupMembersList", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamFriends_GetFriendsGroupMembersList(IntPtr instancePtr, FriendsGroupID_t friendsGroupID, [In, Out] CSteamID[] pOutSteamIDMembers, int nMembersCount); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_HasFriend", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_HasFriend(IntPtr instancePtr, CSteamID steamIDFriend, EFriendFlags iFriendFlags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetClanCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetClanCount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetClanByIndex", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_GetClanByIndex(IntPtr instancePtr, int iClan); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetClanName", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamFriends_GetClanName(IntPtr instancePtr, CSteamID steamIDClan); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetClanTag", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamFriends_GetClanTag(IntPtr instancePtr, CSteamID steamIDClan); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetClanActivityCounts", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_GetClanActivityCounts(IntPtr instancePtr, CSteamID steamIDClan, out int pnOnline, out int pnInGame, out int pnChatting); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_DownloadClanActivityCounts", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_DownloadClanActivityCounts(IntPtr instancePtr, [In, Out] CSteamID[] psteamIDClans, int cClansToRequest); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendCountFromSource", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetFriendCountFromSource(IntPtr instancePtr, CSteamID steamIDSource); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendFromSourceByIndex", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_GetFriendFromSourceByIndex(IntPtr instancePtr, CSteamID steamIDSource, int iFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_IsUserInSource", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_IsUserInSource(IntPtr instancePtr, CSteamID steamIDUser, CSteamID steamIDSource); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_SetInGameVoiceSpeaking", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamFriends_SetInGameVoiceSpeaking(IntPtr instancePtr, CSteamID steamIDUser, [MarshalAs(UnmanagedType.I1)] bool bSpeaking); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlay", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamFriends_ActivateGameOverlay(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchDialog); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayToUser", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamFriends_ActivateGameOverlayToUser(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchDialog, CSteamID steamID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamFriends_ActivateGameOverlayToWebPage(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchURL, EActivateGameOverlayToWebPageMode eMode); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayToStore", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamFriends_ActivateGameOverlayToStore(IntPtr instancePtr, AppId_t nAppID, EOverlayToStoreFlag eFlag); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_SetPlayedWith", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamFriends_SetPlayedWith(IntPtr instancePtr, CSteamID steamIDUserPlayedWith); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamFriends_ActivateGameOverlayInviteDialog(IntPtr instancePtr, CSteamID steamIDLobby); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetSmallFriendAvatar", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetSmallFriendAvatar(IntPtr instancePtr, CSteamID steamIDFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetMediumFriendAvatar", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetMediumFriendAvatar(IntPtr instancePtr, CSteamID steamIDFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetLargeFriendAvatar", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetLargeFriendAvatar(IntPtr instancePtr, CSteamID steamIDFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_RequestUserInformation", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_RequestUserInformation(IntPtr instancePtr, CSteamID steamIDUser, [MarshalAs(UnmanagedType.I1)] bool bRequireNameOnly); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_RequestClanOfficerList", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_RequestClanOfficerList(IntPtr instancePtr, CSteamID steamIDClan); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetClanOwner", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_GetClanOwner(IntPtr instancePtr, CSteamID steamIDClan); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetClanOfficerCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetClanOfficerCount(IntPtr instancePtr, CSteamID steamIDClan); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetClanOfficerByIndex", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_GetClanOfficerByIndex(IntPtr instancePtr, CSteamID steamIDClan, int iOfficer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetUserRestrictions", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamFriends_GetUserRestrictions(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_SetRichPresence", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_SetRichPresence(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchKey, InteropHelp.UTF8StringHandle pchValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_ClearRichPresence", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamFriends_ClearRichPresence(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendRichPresence", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamFriends_GetFriendRichPresence(IntPtr instancePtr, CSteamID steamIDFriend, InteropHelp.UTF8StringHandle pchKey); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetFriendRichPresenceKeyCount(IntPtr instancePtr, CSteamID steamIDFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendRichPresenceKeyByIndex", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamFriends_GetFriendRichPresenceKeyByIndex(IntPtr instancePtr, CSteamID steamIDFriend, int iKey); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_RequestFriendRichPresence", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamFriends_RequestFriendRichPresence(IntPtr instancePtr, CSteamID steamIDFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_InviteUserToGame", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_InviteUserToGame(IntPtr instancePtr, CSteamID steamIDFriend, InteropHelp.UTF8StringHandle pchConnectString); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetCoplayFriendCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetCoplayFriendCount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetCoplayFriend", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_GetCoplayFriend(IntPtr instancePtr, int iCoplayFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendCoplayTime", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetFriendCoplayTime(IntPtr instancePtr, CSteamID steamIDFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendCoplayGame", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamFriends_GetFriendCoplayGame(IntPtr instancePtr, CSteamID steamIDFriend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_JoinClanChatRoom", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_JoinClanChatRoom(IntPtr instancePtr, CSteamID steamIDClan); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_LeaveClanChatRoom", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_LeaveClanChatRoom(IntPtr instancePtr, CSteamID steamIDClan); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetClanChatMemberCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetClanChatMemberCount(IntPtr instancePtr, CSteamID steamIDClan); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetChatMemberByIndex", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_GetChatMemberByIndex(IntPtr instancePtr, CSteamID steamIDClan, int iUser); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_SendClanChatMessage", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_SendClanChatMessage(IntPtr instancePtr, CSteamID steamIDClanChat, InteropHelp.UTF8StringHandle pchText); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetClanChatMessage", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetClanChatMessage(IntPtr instancePtr, CSteamID steamIDClanChat, int iMessage, IntPtr prgchText, int cchTextMax, out EChatEntryType peChatEntryType, out CSteamID psteamidChatter); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_IsClanChatAdmin", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_IsClanChatAdmin(IntPtr instancePtr, CSteamID steamIDClanChat, CSteamID steamIDUser); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_IsClanChatWindowOpenInSteam", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_IsClanChatWindowOpenInSteam(IntPtr instancePtr, CSteamID steamIDClanChat); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_OpenClanChatWindowInSteam", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_OpenClanChatWindowInSteam(IntPtr instancePtr, CSteamID steamIDClanChat); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_CloseClanChatWindowInSteam", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_CloseClanChatWindowInSteam(IntPtr instancePtr, CSteamID steamIDClanChat); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_SetListenForFriendsMessages", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_SetListenForFriendsMessages(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bInterceptEnabled); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_ReplyToFriendMessage", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_ReplyToFriendMessage(IntPtr instancePtr, CSteamID steamIDFriend, InteropHelp.UTF8StringHandle pchMsgToSend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFriendMessage", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetFriendMessage(IntPtr instancePtr, CSteamID steamIDFriend, int iMessageID, IntPtr pvData, int cubData, out EChatEntryType peChatEntryType); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetFollowerCount", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_GetFollowerCount(IntPtr instancePtr, CSteamID steamID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_IsFollowing", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_IsFollowing(IntPtr instancePtr, CSteamID steamID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_EnumerateFollowingList", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_EnumerateFollowingList(IntPtr instancePtr, uint unStartIndex); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_IsClanPublic", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_IsClanPublic(IntPtr instancePtr, CSteamID steamIDClan); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_IsClanOfficialGameGroup", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_IsClanOfficialGameGroup(IntPtr instancePtr, CSteamID steamIDClan); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetNumChatsWithUnreadPriorityMessages", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamFriends_GetNumChatsWithUnreadPriorityMessages(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog(IntPtr instancePtr, CSteamID steamIDLobby); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_RegisterProtocolInOverlayBrowser", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_RegisterProtocolInOverlayBrowser(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchProtocol); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialogConnectString", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamFriends_ActivateGameOverlayInviteDialogConnectString(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchConnectString); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_RequestEquippedProfileItems", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamFriends_RequestEquippedProfileItems(IntPtr instancePtr, CSteamID steamID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_BHasEquippedProfileItem", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamFriends_BHasEquippedProfileItem(IntPtr instancePtr, CSteamID steamID, ECommunityProfileItemType itemType); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetProfileItemPropertyString", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamFriends_GetProfileItemPropertyString(IntPtr instancePtr, CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_GetProfileItemPropertyUint", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamFriends_GetProfileItemPropertyUint(IntPtr instancePtr, CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop); -#endregion -#region SteamGameServer - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetProduct", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetProduct(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszProduct); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetGameDescription", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetGameDescription(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszGameDescription); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetModDir", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetModDir(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszModDir); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetDedicatedServer", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetDedicatedServer(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bDedicated); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_LogOn", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_LogOn(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszToken); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_LogOnAnonymous", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_LogOnAnonymous(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_LogOff", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_LogOff(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_BLoggedOn", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServer_BLoggedOn(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_BSecure", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServer_BSecure(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_GetSteamID", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamGameServer_GetSteamID(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_WasRestartRequested", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServer_WasRestartRequested(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetMaxPlayerCount", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetMaxPlayerCount(IntPtr instancePtr, int cPlayersMax); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetBotPlayerCount", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetBotPlayerCount(IntPtr instancePtr, int cBotplayers); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetServerName", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetServerName(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszServerName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetMapName", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetMapName(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszMapName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetPasswordProtected", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetPasswordProtected(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bPasswordProtected); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetSpectatorPort", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetSpectatorPort(IntPtr instancePtr, ushort unSpectatorPort); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetSpectatorServerName", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetSpectatorServerName(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszSpectatorServerName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_ClearAllKeyValues", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_ClearAllKeyValues(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetKeyValue", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetKeyValue(IntPtr instancePtr, InteropHelp.UTF8StringHandle pKey, InteropHelp.UTF8StringHandle pValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetGameTags", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetGameTags(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchGameTags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetGameData", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetGameData(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchGameData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetRegion", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetRegion(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszRegion); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SetAdvertiseServerActive", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SetAdvertiseServerActive(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bActive); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_GetAuthSessionTicket", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamGameServer_GetAuthSessionTicket(IntPtr instancePtr, byte[] pTicket, int cbMaxTicket, out uint pcbTicket, ref SteamNetworkingIdentity pSnid); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_BeginAuthSession", CallingConvention = CallingConvention.Cdecl)] - public static extern EBeginAuthSessionResult ISteamGameServer_BeginAuthSession(IntPtr instancePtr, byte[] pAuthTicket, int cbAuthTicket, CSteamID steamID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_EndAuthSession", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_EndAuthSession(IntPtr instancePtr, CSteamID steamID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_CancelAuthTicket", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_CancelAuthTicket(IntPtr instancePtr, HAuthTicket hAuthTicket); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_UserHasLicenseForApp", CallingConvention = CallingConvention.Cdecl)] - public static extern EUserHasLicenseForAppResult ISteamGameServer_UserHasLicenseForApp(IntPtr instancePtr, CSteamID steamID, AppId_t appID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_RequestUserGroupStatus", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServer_RequestUserGroupStatus(IntPtr instancePtr, CSteamID steamIDUser, CSteamID steamIDGroup); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_GetGameplayStats", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_GetGameplayStats(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_GetServerReputation", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamGameServer_GetServerReputation(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_GetPublicIP", CallingConvention = CallingConvention.Cdecl)] - public static extern SteamIPAddress_t ISteamGameServer_GetPublicIP(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_HandleIncomingPacket", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServer_HandleIncomingPacket(IntPtr instancePtr, byte[] pData, int cbData, uint srcIP, ushort srcPort); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_GetNextOutgoingPacket", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamGameServer_GetNextOutgoingPacket(IntPtr instancePtr, byte[] pOut, int cbMaxOut, out uint pNetAdr, out ushort pPort); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_AssociateWithClan", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamGameServer_AssociateWithClan(IntPtr instancePtr, CSteamID steamIDClan); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_ComputeNewPlayerCompatibility", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamGameServer_ComputeNewPlayerCompatibility(IntPtr instancePtr, CSteamID steamIDNewPlayer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SendUserConnectAndAuthenticate_DEPRECATED", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServer_SendUserConnectAndAuthenticate_DEPRECATED(IntPtr instancePtr, uint unIPClient, byte[] pvAuthBlob, uint cubAuthBlobSize, out CSteamID pSteamIDUser); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_CreateUnauthenticatedUserConnection", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamGameServer_CreateUnauthenticatedUserConnection(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_SendUserDisconnect_DEPRECATED", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamGameServer_SendUserDisconnect_DEPRECATED(IntPtr instancePtr, CSteamID steamIDUser); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_BUpdateUserData", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServer_BUpdateUserData(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchPlayerName, uint uScore); -#endregion -#region SteamGameServerStats - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerStats_RequestUserStats", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamGameServerStats_RequestUserStats(IntPtr instancePtr, CSteamID steamIDUser); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerStats_GetUserStatInt32", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServerStats_GetUserStatInt32(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchName, out int pData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerStats_GetUserStatFloat", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServerStats_GetUserStatFloat(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchName, out float pData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerStats_GetUserAchievement", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServerStats_GetUserAchievement(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchName, out bool pbAchieved); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerStats_SetUserStatInt32", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServerStats_SetUserStatInt32(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchName, int nData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerStats_SetUserStatFloat", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServerStats_SetUserStatFloat(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchName, float fData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerStats_UpdateUserAvgRateStat", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServerStats_UpdateUserAvgRateStat(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchName, float flCountThisSession, double dSessionLength); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerStats_SetUserAchievement", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServerStats_SetUserAchievement(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerStats_ClearUserAchievement", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamGameServerStats_ClearUserAchievement(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerStats_StoreUserStats", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamGameServerStats_StoreUserStats(IntPtr instancePtr, CSteamID steamIDUser); -#endregion -#region SteamHTMLSurface - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_Init", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTMLSurface_Init(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_Shutdown", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTMLSurface_Shutdown(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_CreateBrowser", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamHTMLSurface_CreateBrowser(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchUserAgent, InteropHelp.UTF8StringHandle pchUserCSS); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_RemoveBrowser", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_RemoveBrowser(IntPtr instancePtr, HHTMLBrowser unBrowserHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_LoadURL", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_LoadURL(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, InteropHelp.UTF8StringHandle pchURL, InteropHelp.UTF8StringHandle pchPostData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_SetSize", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_SetSize(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, uint unWidth, uint unHeight); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_StopLoad", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_StopLoad(IntPtr instancePtr, HHTMLBrowser unBrowserHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_Reload", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_Reload(IntPtr instancePtr, HHTMLBrowser unBrowserHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_GoBack", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_GoBack(IntPtr instancePtr, HHTMLBrowser unBrowserHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_GoForward", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_GoForward(IntPtr instancePtr, HHTMLBrowser unBrowserHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_AddHeader", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_AddHeader(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, InteropHelp.UTF8StringHandle pchKey, InteropHelp.UTF8StringHandle pchValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_ExecuteJavascript", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_ExecuteJavascript(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, InteropHelp.UTF8StringHandle pchScript); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseUp", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_MouseUp(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, EHTMLMouseButton eMouseButton); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseDown", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_MouseDown(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, EHTMLMouseButton eMouseButton); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseDoubleClick", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_MouseDoubleClick(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, EHTMLMouseButton eMouseButton); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseMove", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_MouseMove(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, int x, int y); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_MouseWheel", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_MouseWheel(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, int nDelta); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_KeyDown", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_KeyDown(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, uint nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers, [MarshalAs(UnmanagedType.I1)] bool bIsSystemKey); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_KeyUp", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_KeyUp(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, uint nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_KeyChar", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_KeyChar(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, uint cUnicodeChar, EHTMLKeyModifiers eHTMLKeyModifiers); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_SetHorizontalScroll", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_SetHorizontalScroll(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, uint nAbsolutePixelScroll); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_SetVerticalScroll", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_SetVerticalScroll(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, uint nAbsolutePixelScroll); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_SetKeyFocus", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_SetKeyFocus(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, [MarshalAs(UnmanagedType.I1)] bool bHasKeyFocus); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_ViewSource", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_ViewSource(IntPtr instancePtr, HHTMLBrowser unBrowserHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_CopyToClipboard", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_CopyToClipboard(IntPtr instancePtr, HHTMLBrowser unBrowserHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_PasteFromClipboard", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_PasteFromClipboard(IntPtr instancePtr, HHTMLBrowser unBrowserHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_Find", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_Find(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, InteropHelp.UTF8StringHandle pchSearchStr, [MarshalAs(UnmanagedType.I1)] bool bCurrentlyInFind, [MarshalAs(UnmanagedType.I1)] bool bReverse); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_StopFind", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_StopFind(IntPtr instancePtr, HHTMLBrowser unBrowserHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_GetLinkAtPosition", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_GetLinkAtPosition(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, int x, int y); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_SetCookie", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_SetCookie(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchHostname, InteropHelp.UTF8StringHandle pchKey, InteropHelp.UTF8StringHandle pchValue, InteropHelp.UTF8StringHandle pchPath, uint nExpires, [MarshalAs(UnmanagedType.I1)] bool bSecure, [MarshalAs(UnmanagedType.I1)] bool bHTTPOnly); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_SetPageScaleFactor", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_SetPageScaleFactor(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_SetBackgroundMode", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_SetBackgroundMode(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, [MarshalAs(UnmanagedType.I1)] bool bBackgroundMode); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_SetDPIScalingFactor", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_SetDPIScalingFactor(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, float flDPIScaling); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_OpenDeveloperTools", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_OpenDeveloperTools(IntPtr instancePtr, HHTMLBrowser unBrowserHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_AllowStartRequest", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_AllowStartRequest(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, [MarshalAs(UnmanagedType.I1)] bool bAllowed); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_JSDialogResponse", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_JSDialogResponse(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, [MarshalAs(UnmanagedType.I1)] bool bResult); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface_FileLoadDialogResponse", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamHTMLSurface_FileLoadDialogResponse(IntPtr instancePtr, HHTMLBrowser unBrowserHandle, IntPtr pchSelectedFiles); -#endregion -#region SteamHTTP - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_CreateHTTPRequest", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamHTTP_CreateHTTPRequest(IntPtr instancePtr, EHTTPMethod eHTTPRequestMethod, InteropHelp.UTF8StringHandle pchAbsoluteURL); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestContextValue", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_SetHTTPRequestContextValue(IntPtr instancePtr, HTTPRequestHandle hRequest, ulong ulContextValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestNetworkActivityTimeout", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(IntPtr instancePtr, HTTPRequestHandle hRequest, uint unTimeoutSeconds); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestHeaderValue", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_SetHTTPRequestHeaderValue(IntPtr instancePtr, HTTPRequestHandle hRequest, InteropHelp.UTF8StringHandle pchHeaderName, InteropHelp.UTF8StringHandle pchHeaderValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestGetOrPostParameter", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_SetHTTPRequestGetOrPostParameter(IntPtr instancePtr, HTTPRequestHandle hRequest, InteropHelp.UTF8StringHandle pchParamName, InteropHelp.UTF8StringHandle pchParamValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SendHTTPRequest", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_SendHTTPRequest(IntPtr instancePtr, HTTPRequestHandle hRequest, out SteamAPICall_t pCallHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SendHTTPRequestAndStreamResponse", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_SendHTTPRequestAndStreamResponse(IntPtr instancePtr, HTTPRequestHandle hRequest, out SteamAPICall_t pCallHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_DeferHTTPRequest", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_DeferHTTPRequest(IntPtr instancePtr, HTTPRequestHandle hRequest); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_PrioritizeHTTPRequest", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_PrioritizeHTTPRequest(IntPtr instancePtr, HTTPRequestHandle hRequest); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderSize", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_GetHTTPResponseHeaderSize(IntPtr instancePtr, HTTPRequestHandle hRequest, InteropHelp.UTF8StringHandle pchHeaderName, out uint unResponseHeaderSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseHeaderValue", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_GetHTTPResponseHeaderValue(IntPtr instancePtr, HTTPRequestHandle hRequest, InteropHelp.UTF8StringHandle pchHeaderName, byte[] pHeaderValueBuffer, uint unBufferSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseBodySize", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_GetHTTPResponseBodySize(IntPtr instancePtr, HTTPRequestHandle hRequest, out uint unBodySize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPResponseBodyData", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_GetHTTPResponseBodyData(IntPtr instancePtr, HTTPRequestHandle hRequest, byte[] pBodyDataBuffer, uint unBufferSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPStreamingResponseBodyData", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_GetHTTPStreamingResponseBodyData(IntPtr instancePtr, HTTPRequestHandle hRequest, uint cOffset, byte[] pBodyDataBuffer, uint unBufferSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_ReleaseHTTPRequest", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_ReleaseHTTPRequest(IntPtr instancePtr, HTTPRequestHandle hRequest); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPDownloadProgressPct", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_GetHTTPDownloadProgressPct(IntPtr instancePtr, HTTPRequestHandle hRequest, out float pflPercentOut); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestRawPostBody", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_SetHTTPRequestRawPostBody(IntPtr instancePtr, HTTPRequestHandle hRequest, InteropHelp.UTF8StringHandle pchContentType, byte[] pubBody, uint unBodyLen); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_CreateCookieContainer", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamHTTP_CreateCookieContainer(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bAllowResponsesToModify); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_ReleaseCookieContainer", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_ReleaseCookieContainer(IntPtr instancePtr, HTTPCookieContainerHandle hCookieContainer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetCookie", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_SetCookie(IntPtr instancePtr, HTTPCookieContainerHandle hCookieContainer, InteropHelp.UTF8StringHandle pchHost, InteropHelp.UTF8StringHandle pchUrl, InteropHelp.UTF8StringHandle pchCookie); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestCookieContainer", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_SetHTTPRequestCookieContainer(IntPtr instancePtr, HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestUserAgentInfo", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_SetHTTPRequestUserAgentInfo(IntPtr instancePtr, HTTPRequestHandle hRequest, InteropHelp.UTF8StringHandle pchUserAgentInfo); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(IntPtr instancePtr, HTTPRequestHandle hRequest, [MarshalAs(UnmanagedType.I1)] bool bRequireVerifiedCertificate); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(IntPtr instancePtr, HTTPRequestHandle hRequest, uint unMilliseconds); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTTPRequestWasTimedOut", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamHTTP_GetHTTPRequestWasTimedOut(IntPtr instancePtr, HTTPRequestHandle hRequest, out bool pbWasTimedOut); -#endregion -#region SteamInput - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Init", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInput_Init(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bExplicitlyCallRunFrame); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Shutdown", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInput_Shutdown(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_SetInputActionManifestFilePath", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInput_SetInputActionManifestFilePath(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchInputActionManifestAbsolutePath); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_RunFrame", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_RunFrame(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bReservedValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_BWaitForData", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInput_BWaitForData(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bWaitForever, uint unTimeout); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_BNewDataAvailable", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInput_BNewDataAvailable(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetConnectedControllers", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamInput_GetConnectedControllers(IntPtr instancePtr, [In, Out] InputHandle_t[] handlesOut); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_EnableDeviceCallbacks", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_EnableDeviceCallbacks(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_EnableActionEventCallbacks", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_EnableActionEventCallbacks(IntPtr instancePtr, SteamInputActionEventCallbackPointer pCallback); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetActionSetHandle", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamInput_GetActionSetHandle(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszActionSetName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_ActivateActionSet", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_ActivateActionSet(IntPtr instancePtr, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetCurrentActionSet", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamInput_GetCurrentActionSet(IntPtr instancePtr, InputHandle_t inputHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_ActivateActionSetLayer", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_ActivateActionSetLayer(IntPtr instancePtr, InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_DeactivateActionSetLayer", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_DeactivateActionSetLayer(IntPtr instancePtr, InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_DeactivateAllActionSetLayers", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_DeactivateAllActionSetLayers(IntPtr instancePtr, InputHandle_t inputHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetActiveActionSetLayers", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamInput_GetActiveActionSetLayers(IntPtr instancePtr, InputHandle_t inputHandle, [In, Out] InputActionSetHandle_t[] handlesOut); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetDigitalActionHandle", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamInput_GetDigitalActionHandle(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszActionName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetDigitalActionData", CallingConvention = CallingConvention.Cdecl)] - public static extern InputDigitalActionData_t ISteamInput_GetDigitalActionData(IntPtr instancePtr, InputHandle_t inputHandle, InputDigitalActionHandle_t digitalActionHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetDigitalActionOrigins", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamInput_GetDigitalActionOrigins(IntPtr instancePtr, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, [In, Out] EInputActionOrigin[] originsOut); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetStringForDigitalActionName", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamInput_GetStringForDigitalActionName(IntPtr instancePtr, InputDigitalActionHandle_t eActionHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetAnalogActionHandle", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamInput_GetAnalogActionHandle(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszActionName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetAnalogActionData", CallingConvention = CallingConvention.Cdecl)] - public static extern InputAnalogActionData_t ISteamInput_GetAnalogActionData(IntPtr instancePtr, InputHandle_t inputHandle, InputAnalogActionHandle_t analogActionHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetAnalogActionOrigins", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamInput_GetAnalogActionOrigins(IntPtr instancePtr, InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, [In, Out] EInputActionOrigin[] originsOut); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetGlyphPNGForActionOrigin", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamInput_GetGlyphPNGForActionOrigin(IntPtr instancePtr, EInputActionOrigin eOrigin, ESteamInputGlyphSize eSize, uint unFlags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetGlyphSVGForActionOrigin", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamInput_GetGlyphSVGForActionOrigin(IntPtr instancePtr, EInputActionOrigin eOrigin, uint unFlags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetGlyphForActionOrigin_Legacy", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamInput_GetGlyphForActionOrigin_Legacy(IntPtr instancePtr, EInputActionOrigin eOrigin); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetStringForActionOrigin", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamInput_GetStringForActionOrigin(IntPtr instancePtr, EInputActionOrigin eOrigin); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetStringForAnalogActionName", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamInput_GetStringForAnalogActionName(IntPtr instancePtr, InputAnalogActionHandle_t eActionHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_StopAnalogActionMomentum", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_StopAnalogActionMomentum(IntPtr instancePtr, InputHandle_t inputHandle, InputAnalogActionHandle_t eAction); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetMotionData", CallingConvention = CallingConvention.Cdecl)] - public static extern InputMotionData_t ISteamInput_GetMotionData(IntPtr instancePtr, InputHandle_t inputHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_TriggerVibration", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_TriggerVibration(IntPtr instancePtr, InputHandle_t inputHandle, ushort usLeftSpeed, ushort usRightSpeed); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_TriggerVibrationExtended", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_TriggerVibrationExtended(IntPtr instancePtr, InputHandle_t inputHandle, ushort usLeftSpeed, ushort usRightSpeed, ushort usLeftTriggerSpeed, ushort usRightTriggerSpeed); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_TriggerSimpleHapticEvent", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_TriggerSimpleHapticEvent(IntPtr instancePtr, InputHandle_t inputHandle, EControllerHapticLocation eHapticLocation, byte nIntensity, char nGainDB, byte nOtherIntensity, char nOtherGainDB); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_SetLEDColor", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_SetLEDColor(IntPtr instancePtr, InputHandle_t inputHandle, byte nColorR, byte nColorG, byte nColorB, uint nFlags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Legacy_TriggerHapticPulse", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_Legacy_TriggerHapticPulse(IntPtr instancePtr, InputHandle_t inputHandle, ESteamControllerPad eTargetPad, ushort usDurationMicroSec); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Legacy_TriggerRepeatedHapticPulse", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_Legacy_TriggerRepeatedHapticPulse(IntPtr instancePtr, InputHandle_t inputHandle, ESteamControllerPad eTargetPad, ushort usDurationMicroSec, ushort usOffMicroSec, ushort unRepeat, uint nFlags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_ShowBindingPanel", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInput_ShowBindingPanel(IntPtr instancePtr, InputHandle_t inputHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetInputTypeForHandle", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamInputType ISteamInput_GetInputTypeForHandle(IntPtr instancePtr, InputHandle_t inputHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetControllerForGamepadIndex", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamInput_GetControllerForGamepadIndex(IntPtr instancePtr, int nIndex); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetGamepadIndexForController", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamInput_GetGamepadIndexForController(IntPtr instancePtr, InputHandle_t ulinputHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetStringForXboxOrigin", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamInput_GetStringForXboxOrigin(IntPtr instancePtr, EXboxOrigin eOrigin); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetGlyphForXboxOrigin", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamInput_GetGlyphForXboxOrigin(IntPtr instancePtr, EXboxOrigin eOrigin); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetActionOriginFromXboxOrigin", CallingConvention = CallingConvention.Cdecl)] - public static extern EInputActionOrigin ISteamInput_GetActionOriginFromXboxOrigin(IntPtr instancePtr, InputHandle_t inputHandle, EXboxOrigin eOrigin); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_TranslateActionOrigin", CallingConvention = CallingConvention.Cdecl)] - public static extern EInputActionOrigin ISteamInput_TranslateActionOrigin(IntPtr instancePtr, ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetDeviceBindingRevision", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInput_GetDeviceBindingRevision(IntPtr instancePtr, InputHandle_t inputHandle, out int pMajor, out int pMinor); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetRemotePlaySessionID", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamInput_GetRemotePlaySessionID(IntPtr instancePtr, InputHandle_t inputHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetSessionInputConfigurationSettings", CallingConvention = CallingConvention.Cdecl)] - public static extern ushort ISteamInput_GetSessionInputConfigurationSettings(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_SetDualSenseTriggerEffect", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInput_SetDualSenseTriggerEffect(IntPtr instancePtr, InputHandle_t inputHandle, IntPtr pParam); -#endregion -#region SteamInventory - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GetResultStatus", CallingConvention = CallingConvention.Cdecl)] - public static extern EResult ISteamInventory_GetResultStatus(IntPtr instancePtr, SteamInventoryResult_t resultHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GetResultItems", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_GetResultItems(IntPtr instancePtr, SteamInventoryResult_t resultHandle, [In, Out] SteamItemDetails_t[] pOutItemsArray, ref uint punOutItemsArraySize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GetResultItemProperty", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_GetResultItemProperty(IntPtr instancePtr, SteamInventoryResult_t resultHandle, uint unItemIndex, InteropHelp.UTF8StringHandle pchPropertyName, IntPtr pchValueBuffer, ref uint punValueBufferSizeOut); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GetResultTimestamp", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamInventory_GetResultTimestamp(IntPtr instancePtr, SteamInventoryResult_t resultHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_CheckResultSteamID", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_CheckResultSteamID(IntPtr instancePtr, SteamInventoryResult_t resultHandle, CSteamID steamIDExpected); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_DestroyResult", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInventory_DestroyResult(IntPtr instancePtr, SteamInventoryResult_t resultHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GetAllItems", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_GetAllItems(IntPtr instancePtr, out SteamInventoryResult_t pResultHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GetItemsByID", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_GetItemsByID(IntPtr instancePtr, out SteamInventoryResult_t pResultHandle, [In, Out] SteamItemInstanceID_t[] pInstanceIDs, uint unCountInstanceIDs); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_SerializeResult", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_SerializeResult(IntPtr instancePtr, SteamInventoryResult_t resultHandle, byte[] pOutBuffer, out uint punOutBufferSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_DeserializeResult", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_DeserializeResult(IntPtr instancePtr, out SteamInventoryResult_t pOutResultHandle, byte[] pBuffer, uint unBufferSize, [MarshalAs(UnmanagedType.I1)] bool bRESERVED_MUST_BE_FALSE); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GenerateItems", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_GenerateItems(IntPtr instancePtr, out SteamInventoryResult_t pResultHandle, [In, Out] SteamItemDef_t[] pArrayItemDefs, [In, Out] uint[] punArrayQuantity, uint unArrayLength); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GrantPromoItems", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_GrantPromoItems(IntPtr instancePtr, out SteamInventoryResult_t pResultHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_AddPromoItem", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_AddPromoItem(IntPtr instancePtr, out SteamInventoryResult_t pResultHandle, SteamItemDef_t itemDef); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_AddPromoItems", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_AddPromoItems(IntPtr instancePtr, out SteamInventoryResult_t pResultHandle, [In, Out] SteamItemDef_t[] pArrayItemDefs, uint unArrayLength); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_ConsumeItem", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_ConsumeItem(IntPtr instancePtr, out SteamInventoryResult_t pResultHandle, SteamItemInstanceID_t itemConsume, uint unQuantity); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_ExchangeItems", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_ExchangeItems(IntPtr instancePtr, out SteamInventoryResult_t pResultHandle, [In, Out] SteamItemDef_t[] pArrayGenerate, [In, Out] uint[] punArrayGenerateQuantity, uint unArrayGenerateLength, [In, Out] SteamItemInstanceID_t[] pArrayDestroy, [In, Out] uint[] punArrayDestroyQuantity, uint unArrayDestroyLength); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_TransferItemQuantity", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_TransferItemQuantity(IntPtr instancePtr, out SteamInventoryResult_t pResultHandle, SteamItemInstanceID_t itemIdSource, uint unQuantity, SteamItemInstanceID_t itemIdDest); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_SendItemDropHeartbeat", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamInventory_SendItemDropHeartbeat(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_TriggerItemDrop", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_TriggerItemDrop(IntPtr instancePtr, out SteamInventoryResult_t pResultHandle, SteamItemDef_t dropListDefinition); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_TradeItems", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_TradeItems(IntPtr instancePtr, out SteamInventoryResult_t pResultHandle, CSteamID steamIDTradePartner, [In, Out] SteamItemInstanceID_t[] pArrayGive, [In, Out] uint[] pArrayGiveQuantity, uint nArrayGiveLength, [In, Out] SteamItemInstanceID_t[] pArrayGet, [In, Out] uint[] pArrayGetQuantity, uint nArrayGetLength); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_LoadItemDefinitions", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_LoadItemDefinitions(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GetItemDefinitionIDs", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_GetItemDefinitionIDs(IntPtr instancePtr, [In, Out] SteamItemDef_t[] pItemDefIDs, ref uint punItemDefIDsArraySize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GetItemDefinitionProperty", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_GetItemDefinitionProperty(IntPtr instancePtr, SteamItemDef_t iDefinition, InteropHelp.UTF8StringHandle pchPropertyName, IntPtr pchValueBuffer, ref uint punValueBufferSizeOut); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_RequestEligiblePromoItemDefinitionsIDs", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamInventory_RequestEligiblePromoItemDefinitionsIDs(IntPtr instancePtr, CSteamID steamID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GetEligiblePromoItemDefinitionIDs", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_GetEligiblePromoItemDefinitionIDs(IntPtr instancePtr, CSteamID steamID, [In, Out] SteamItemDef_t[] pItemDefIDs, ref uint punItemDefIDsArraySize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_StartPurchase", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamInventory_StartPurchase(IntPtr instancePtr, [In, Out] SteamItemDef_t[] pArrayItemDefs, [In, Out] uint[] punArrayQuantity, uint unArrayLength); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_RequestPrices", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamInventory_RequestPrices(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GetNumItemsWithPrices", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamInventory_GetNumItemsWithPrices(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GetItemsWithPrices", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_GetItemsWithPrices(IntPtr instancePtr, [In, Out] SteamItemDef_t[] pArrayItemDefs, [In, Out] ulong[] pCurrentPrices, [In, Out] ulong[] pBasePrices, uint unArrayLength); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_GetItemPrice", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_GetItemPrice(IntPtr instancePtr, SteamItemDef_t iDefinition, out ulong pCurrentPrice, out ulong pBasePrice); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_StartUpdateProperties", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamInventory_StartUpdateProperties(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_RemoveProperty", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_RemoveProperty(IntPtr instancePtr, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, InteropHelp.UTF8StringHandle pchPropertyName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_SetPropertyString", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_SetPropertyString(IntPtr instancePtr, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, InteropHelp.UTF8StringHandle pchPropertyName, InteropHelp.UTF8StringHandle pchPropertyValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_SetPropertyBool", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_SetPropertyBool(IntPtr instancePtr, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, InteropHelp.UTF8StringHandle pchPropertyName, [MarshalAs(UnmanagedType.I1)] bool bValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_SetPropertyInt64", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_SetPropertyInt64(IntPtr instancePtr, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, InteropHelp.UTF8StringHandle pchPropertyName, long nValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_SetPropertyFloat", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_SetPropertyFloat(IntPtr instancePtr, SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, InteropHelp.UTF8StringHandle pchPropertyName, float flValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_SubmitUpdateProperties", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_SubmitUpdateProperties(IntPtr instancePtr, SteamInventoryUpdateHandle_t handle, out SteamInventoryResult_t pResultHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_InspectItem", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamInventory_InspectItem(IntPtr instancePtr, out SteamInventoryResult_t pResultHandle, InteropHelp.UTF8StringHandle pchItemToken); -#endregion -#region SteamMatchmaking - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetFavoriteGameCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamMatchmaking_GetFavoriteGameCount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetFavoriteGame", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_GetFavoriteGame(IntPtr instancePtr, int iGame, out AppId_t pnAppID, out uint pnIP, out ushort pnConnPort, out ushort pnQueryPort, out uint punFlags, out uint pRTime32LastPlayedOnServer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_AddFavoriteGame", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamMatchmaking_AddFavoriteGame(IntPtr instancePtr, AppId_t nAppID, uint nIP, ushort nConnPort, ushort nQueryPort, uint unFlags, uint rTime32LastPlayedOnServer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_RemoveFavoriteGame", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_RemoveFavoriteGame(IntPtr instancePtr, AppId_t nAppID, uint nIP, ushort nConnPort, ushort nQueryPort, uint unFlags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_RequestLobbyList", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamMatchmaking_RequestLobbyList(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListStringFilter", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmaking_AddRequestLobbyListStringFilter(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchKeyToMatch, InteropHelp.UTF8StringHandle pchValueToMatch, ELobbyComparison eComparisonType); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNumericalFilter", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmaking_AddRequestLobbyListNumericalFilter(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchKeyToMatch, int nValueToMatch, ELobbyComparison eComparisonType); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListNearValueFilter", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmaking_AddRequestLobbyListNearValueFilter(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchKeyToMatch, int nValueToBeCloseTo); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(IntPtr instancePtr, int nSlotsAvailable); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListDistanceFilter", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmaking_AddRequestLobbyListDistanceFilter(IntPtr instancePtr, ELobbyDistanceFilter eLobbyDistanceFilter); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListResultCountFilter", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmaking_AddRequestLobbyListResultCountFilter(IntPtr instancePtr, int cMaxResults); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(IntPtr instancePtr, CSteamID steamIDLobby); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyByIndex", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamMatchmaking_GetLobbyByIndex(IntPtr instancePtr, int iLobby); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_CreateLobby", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamMatchmaking_CreateLobby(IntPtr instancePtr, ELobbyType eLobbyType, int cMaxMembers); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_JoinLobby", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamMatchmaking_JoinLobby(IntPtr instancePtr, CSteamID steamIDLobby); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_LeaveLobby", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmaking_LeaveLobby(IntPtr instancePtr, CSteamID steamIDLobby); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_InviteUserToLobby", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_InviteUserToLobby(IntPtr instancePtr, CSteamID steamIDLobby, CSteamID steamIDInvitee); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetNumLobbyMembers", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamMatchmaking_GetNumLobbyMembers(IntPtr instancePtr, CSteamID steamIDLobby); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamMatchmaking_GetLobbyMemberByIndex(IntPtr instancePtr, CSteamID steamIDLobby, int iMember); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyData", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamMatchmaking_GetLobbyData(IntPtr instancePtr, CSteamID steamIDLobby, InteropHelp.UTF8StringHandle pchKey); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyData", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_SetLobbyData(IntPtr instancePtr, CSteamID steamIDLobby, InteropHelp.UTF8StringHandle pchKey, InteropHelp.UTF8StringHandle pchValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyDataCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamMatchmaking_GetLobbyDataCount(IntPtr instancePtr, CSteamID steamIDLobby); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyDataByIndex", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_GetLobbyDataByIndex(IntPtr instancePtr, CSteamID steamIDLobby, int iLobbyData, IntPtr pchKey, int cchKeyBufferSize, IntPtr pchValue, int cchValueBufferSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_DeleteLobbyData", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_DeleteLobbyData(IntPtr instancePtr, CSteamID steamIDLobby, InteropHelp.UTF8StringHandle pchKey); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyMemberData", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamMatchmaking_GetLobbyMemberData(IntPtr instancePtr, CSteamID steamIDLobby, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchKey); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyMemberData", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmaking_SetLobbyMemberData(IntPtr instancePtr, CSteamID steamIDLobby, InteropHelp.UTF8StringHandle pchKey, InteropHelp.UTF8StringHandle pchValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_SendLobbyChatMsg", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_SendLobbyChatMsg(IntPtr instancePtr, CSteamID steamIDLobby, byte[] pvMsgBody, int cubMsgBody); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyChatEntry", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamMatchmaking_GetLobbyChatEntry(IntPtr instancePtr, CSteamID steamIDLobby, int iChatID, out CSteamID pSteamIDUser, byte[] pvData, int cubData, out EChatEntryType peChatEntryType); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_RequestLobbyData", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_RequestLobbyData(IntPtr instancePtr, CSteamID steamIDLobby); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyGameServer", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmaking_SetLobbyGameServer(IntPtr instancePtr, CSteamID steamIDLobby, uint unGameServerIP, ushort unGameServerPort, CSteamID steamIDGameServer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyGameServer", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_GetLobbyGameServer(IntPtr instancePtr, CSteamID steamIDLobby, out uint punGameServerIP, out ushort punGameServerPort, out CSteamID psteamIDGameServer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyMemberLimit", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_SetLobbyMemberLimit(IntPtr instancePtr, CSteamID steamIDLobby, int cMaxMembers); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyMemberLimit", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamMatchmaking_GetLobbyMemberLimit(IntPtr instancePtr, CSteamID steamIDLobby); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyType", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_SetLobbyType(IntPtr instancePtr, CSteamID steamIDLobby, ELobbyType eLobbyType); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyJoinable", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_SetLobbyJoinable(IntPtr instancePtr, CSteamID steamIDLobby, [MarshalAs(UnmanagedType.I1)] bool bLobbyJoinable); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_GetLobbyOwner", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamMatchmaking_GetLobbyOwner(IntPtr instancePtr, CSteamID steamIDLobby); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_SetLobbyOwner", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_SetLobbyOwner(IntPtr instancePtr, CSteamID steamIDLobby, CSteamID steamIDNewOwner); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_SetLinkedLobby", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmaking_SetLinkedLobby(IntPtr instancePtr, CSteamID steamIDLobby, CSteamID steamIDLobbyDependent); -#if _PS3 - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking_CheckForPSNGameBootInvite", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmaking_CheckForPSNGameBootInvite(IntPtr instancePtr, uint iGameBootAttributes); -#endif -#endregion -#region SteamMatchmakingServers - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestInternetServerList", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamMatchmakingServers_RequestInternetServerList(IntPtr instancePtr, AppId_t iApp, IntPtr ppchFilters, uint nFilters, IntPtr pRequestServersResponse); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestLANServerList", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamMatchmakingServers_RequestLANServerList(IntPtr instancePtr, AppId_t iApp, IntPtr pRequestServersResponse); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestFriendsServerList", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamMatchmakingServers_RequestFriendsServerList(IntPtr instancePtr, AppId_t iApp, IntPtr ppchFilters, uint nFilters, IntPtr pRequestServersResponse); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestFavoritesServerList", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamMatchmakingServers_RequestFavoritesServerList(IntPtr instancePtr, AppId_t iApp, IntPtr ppchFilters, uint nFilters, IntPtr pRequestServersResponse); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestHistoryServerList", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamMatchmakingServers_RequestHistoryServerList(IntPtr instancePtr, AppId_t iApp, IntPtr ppchFilters, uint nFilters, IntPtr pRequestServersResponse); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_RequestSpectatorServerList", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamMatchmakingServers_RequestSpectatorServerList(IntPtr instancePtr, AppId_t iApp, IntPtr ppchFilters, uint nFilters, IntPtr pRequestServersResponse); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_ReleaseRequest", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmakingServers_ReleaseRequest(IntPtr instancePtr, HServerListRequest hServerListRequest); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_GetServerDetails", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamMatchmakingServers_GetServerDetails(IntPtr instancePtr, HServerListRequest hRequest, int iServer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_CancelQuery", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmakingServers_CancelQuery(IntPtr instancePtr, HServerListRequest hRequest); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_RefreshQuery", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmakingServers_RefreshQuery(IntPtr instancePtr, HServerListRequest hRequest); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_IsRefreshing", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMatchmakingServers_IsRefreshing(IntPtr instancePtr, HServerListRequest hRequest); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_GetServerCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamMatchmakingServers_GetServerCount(IntPtr instancePtr, HServerListRequest hRequest); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_RefreshServer", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmakingServers_RefreshServer(IntPtr instancePtr, HServerListRequest hRequest, int iServer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_PingServer", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamMatchmakingServers_PingServer(IntPtr instancePtr, uint unIP, ushort usPort, IntPtr pRequestServersResponse); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_PlayerDetails", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamMatchmakingServers_PlayerDetails(IntPtr instancePtr, uint unIP, ushort usPort, IntPtr pRequestServersResponse); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_ServerRules", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamMatchmakingServers_ServerRules(IntPtr instancePtr, uint unIP, ushort usPort, IntPtr pRequestServersResponse); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmakingServers_CancelServerQuery", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMatchmakingServers_CancelServerQuery(IntPtr instancePtr, HServerQuery hServerQuery); -#endregion -#region SteamGameSearch - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_AddGameSearchParams", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_AddGameSearchParams(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchKeyToFind, InteropHelp.UTF8StringHandle pchValuesToFind); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_SearchForGameWithLobby", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_SearchForGameWithLobby(IntPtr instancePtr, CSteamID steamIDLobby, int nPlayerMin, int nPlayerMax); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_SearchForGameSolo", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_SearchForGameSolo(IntPtr instancePtr, int nPlayerMin, int nPlayerMax); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_AcceptGame", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_AcceptGame(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_DeclineGame", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_DeclineGame(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_RetrieveConnectionDetails", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_RetrieveConnectionDetails(IntPtr instancePtr, CSteamID steamIDHost, IntPtr pchConnectionDetails, int cubConnectionDetails); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_EndGameSearch", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_EndGameSearch(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_SetGameHostParams", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_SetGameHostParams(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchKey, InteropHelp.UTF8StringHandle pchValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_SetConnectionDetails", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_SetConnectionDetails(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchConnectionDetails, int cubConnectionDetails); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_RequestPlayersForGame", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_RequestPlayersForGame(IntPtr instancePtr, int nPlayerMin, int nPlayerMax, int nMaxTeamSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_HostConfirmGameStart", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_HostConfirmGameStart(IntPtr instancePtr, ulong ullUniqueGameID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_CancelRequestPlayersForGame", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_CancelRequestPlayersForGame(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_SubmitPlayerResult", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_SubmitPlayerResult(IntPtr instancePtr, ulong ullUniqueGameID, CSteamID steamIDPlayer, EPlayerResult_t EPlayerResult); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_EndGame", CallingConvention = CallingConvention.Cdecl)] - public static extern EGameSearchErrorCode_t ISteamGameSearch_EndGame(IntPtr instancePtr, ulong ullUniqueGameID); -#endregion -#region SteamParties - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_GetNumActiveBeacons", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamParties_GetNumActiveBeacons(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_GetBeaconByIndex", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamParties_GetBeaconByIndex(IntPtr instancePtr, uint unIndex); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_GetBeaconDetails", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamParties_GetBeaconDetails(IntPtr instancePtr, PartyBeaconID_t ulBeaconID, out CSteamID pSteamIDBeaconOwner, out SteamPartyBeaconLocation_t pLocation, IntPtr pchMetadata, int cchMetadata); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_JoinParty", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamParties_JoinParty(IntPtr instancePtr, PartyBeaconID_t ulBeaconID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_GetNumAvailableBeaconLocations", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamParties_GetNumAvailableBeaconLocations(IntPtr instancePtr, out uint puNumLocations); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_GetAvailableBeaconLocations", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamParties_GetAvailableBeaconLocations(IntPtr instancePtr, [In, Out] SteamPartyBeaconLocation_t[] pLocationList, uint uMaxNumLocations); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_CreateBeacon", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamParties_CreateBeacon(IntPtr instancePtr, uint unOpenSlots, ref SteamPartyBeaconLocation_t pBeaconLocation, InteropHelp.UTF8StringHandle pchConnectString, InteropHelp.UTF8StringHandle pchMetadata); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_OnReservationCompleted", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamParties_OnReservationCompleted(IntPtr instancePtr, PartyBeaconID_t ulBeacon, CSteamID steamIDUser); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_CancelReservation", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamParties_CancelReservation(IntPtr instancePtr, PartyBeaconID_t ulBeacon, CSteamID steamIDUser); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_ChangeNumOpenSlots", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamParties_ChangeNumOpenSlots(IntPtr instancePtr, PartyBeaconID_t ulBeacon, uint unOpenSlots); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_DestroyBeacon", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamParties_DestroyBeacon(IntPtr instancePtr, PartyBeaconID_t ulBeacon); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_GetBeaconLocationData", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamParties_GetBeaconLocationData(IntPtr instancePtr, SteamPartyBeaconLocation_t BeaconLocation, ESteamPartyBeaconLocationData eData, IntPtr pchDataStringOut, int cchDataStringOut); -#endregion -#region SteamMusic - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_BIsEnabled", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusic_BIsEnabled(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_BIsPlaying", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusic_BIsPlaying(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_GetPlaybackStatus", CallingConvention = CallingConvention.Cdecl)] - public static extern AudioPlayback_Status ISteamMusic_GetPlaybackStatus(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_Play", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMusic_Play(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_Pause", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMusic_Pause(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_PlayPrevious", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMusic_PlayPrevious(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_PlayNext", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMusic_PlayNext(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_SetVolume", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamMusic_SetVolume(IntPtr instancePtr, float flVolume); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_GetVolume", CallingConvention = CallingConvention.Cdecl)] - public static extern float ISteamMusic_GetVolume(IntPtr instancePtr); -#endregion -#region SteamMusicRemote - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_RegisterSteamMusicRemote", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_RegisterSteamMusicRemote(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_DeregisterSteamMusicRemote", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_DeregisterSteamMusicRemote(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_BIsCurrentMusicRemote", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_BIsCurrentMusicRemote(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_BActivationSuccess", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_BActivationSuccess(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_SetDisplayName", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_SetDisplayName(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchDisplayName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_SetPNGIcon_64x64", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_SetPNGIcon_64x64(IntPtr instancePtr, byte[] pvBuffer, uint cbBufferLength); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_EnablePlayPrevious", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_EnablePlayPrevious(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_EnablePlayNext", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_EnablePlayNext(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_EnableShuffled", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_EnableShuffled(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_EnableLooped", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_EnableLooped(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_EnableQueue", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_EnableQueue(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_EnablePlaylists", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_EnablePlaylists(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_UpdatePlaybackStatus", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_UpdatePlaybackStatus(IntPtr instancePtr, AudioPlayback_Status nStatus); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateShuffled", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_UpdateShuffled(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateLooped", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_UpdateLooped(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateVolume", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_UpdateVolume(IntPtr instancePtr, float flValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_CurrentEntryWillChange", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_CurrentEntryWillChange(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_CurrentEntryIsAvailable", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_CurrentEntryIsAvailable(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bAvailable); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryText", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_UpdateCurrentEntryText(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchText); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds(IntPtr instancePtr, int nValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_UpdateCurrentEntryCoverArt", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_UpdateCurrentEntryCoverArt(IntPtr instancePtr, byte[] pvBuffer, uint cbBufferLength); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_CurrentEntryDidChange", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_CurrentEntryDidChange(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_QueueWillChange", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_QueueWillChange(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_ResetQueueEntries", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_ResetQueueEntries(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_SetQueueEntry", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_SetQueueEntry(IntPtr instancePtr, int nID, int nPosition, InteropHelp.UTF8StringHandle pchEntryText); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_SetCurrentQueueEntry", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_SetCurrentQueueEntry(IntPtr instancePtr, int nID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_QueueDidChange", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_QueueDidChange(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_PlaylistWillChange", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_PlaylistWillChange(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_ResetPlaylistEntries", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_ResetPlaylistEntries(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_SetPlaylistEntry", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_SetPlaylistEntry(IntPtr instancePtr, int nID, int nPosition, InteropHelp.UTF8StringHandle pchEntryText); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_SetCurrentPlaylistEntry", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_SetCurrentPlaylistEntry(IntPtr instancePtr, int nID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote_PlaylistDidChange", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamMusicRemote_PlaylistDidChange(IntPtr instancePtr); -#endregion -#region SteamNetworking - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_SendP2PPacket", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_SendP2PPacket(IntPtr instancePtr, CSteamID steamIDRemote, byte[] pubData, uint cubData, EP2PSend eP2PSendType, int nChannel); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_IsP2PPacketAvailable", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_IsP2PPacketAvailable(IntPtr instancePtr, out uint pcubMsgSize, int nChannel); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_ReadP2PPacket", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_ReadP2PPacket(IntPtr instancePtr, byte[] pubDest, uint cubDest, out uint pcubMsgSize, out CSteamID psteamIDRemote, int nChannel); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_AcceptP2PSessionWithUser(IntPtr instancePtr, CSteamID steamIDRemote); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_CloseP2PSessionWithUser", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_CloseP2PSessionWithUser(IntPtr instancePtr, CSteamID steamIDRemote); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_CloseP2PChannelWithUser", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_CloseP2PChannelWithUser(IntPtr instancePtr, CSteamID steamIDRemote, int nChannel); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_GetP2PSessionState", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_GetP2PSessionState(IntPtr instancePtr, CSteamID steamIDRemote, out P2PSessionState_t pConnectionState); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_AllowP2PPacketRelay", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_AllowP2PPacketRelay(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bAllow); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_CreateListenSocket", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworking_CreateListenSocket(IntPtr instancePtr, int nVirtualP2PPort, SteamIPAddress_t nIP, ushort nPort, [MarshalAs(UnmanagedType.I1)] bool bAllowUseOfPacketRelay); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_CreateP2PConnectionSocket", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworking_CreateP2PConnectionSocket(IntPtr instancePtr, CSteamID steamIDTarget, int nVirtualPort, int nTimeoutSec, [MarshalAs(UnmanagedType.I1)] bool bAllowUseOfPacketRelay); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_CreateConnectionSocket", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworking_CreateConnectionSocket(IntPtr instancePtr, SteamIPAddress_t nIP, ushort nPort, int nTimeoutSec); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_DestroySocket", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_DestroySocket(IntPtr instancePtr, SNetSocket_t hSocket, [MarshalAs(UnmanagedType.I1)] bool bNotifyRemoteEnd); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_DestroyListenSocket", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_DestroyListenSocket(IntPtr instancePtr, SNetListenSocket_t hSocket, [MarshalAs(UnmanagedType.I1)] bool bNotifyRemoteEnd); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_SendDataOnSocket", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_SendDataOnSocket(IntPtr instancePtr, SNetSocket_t hSocket, byte[] pubData, uint cubData, [MarshalAs(UnmanagedType.I1)] bool bReliable); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_IsDataAvailableOnSocket", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_IsDataAvailableOnSocket(IntPtr instancePtr, SNetSocket_t hSocket, out uint pcubMsgSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_RetrieveDataFromSocket", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_RetrieveDataFromSocket(IntPtr instancePtr, SNetSocket_t hSocket, byte[] pubDest, uint cubDest, out uint pcubMsgSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_IsDataAvailable", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_IsDataAvailable(IntPtr instancePtr, SNetListenSocket_t hListenSocket, out uint pcubMsgSize, out SNetSocket_t phSocket); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_RetrieveData", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_RetrieveData(IntPtr instancePtr, SNetListenSocket_t hListenSocket, byte[] pubDest, uint cubDest, out uint pcubMsgSize, out SNetSocket_t phSocket); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_GetSocketInfo", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_GetSocketInfo(IntPtr instancePtr, SNetSocket_t hSocket, out CSteamID pSteamIDRemote, out int peSocketStatus, out SteamIPAddress_t punIPRemote, out ushort punPortRemote); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_GetListenSocketInfo", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworking_GetListenSocketInfo(IntPtr instancePtr, SNetListenSocket_t hListenSocket, out SteamIPAddress_t pnIP, out ushort pnPort); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_GetSocketConnectionType", CallingConvention = CallingConvention.Cdecl)] - public static extern ESNetSocketConnectionType ISteamNetworking_GetSocketConnectionType(IntPtr instancePtr, SNetSocket_t hSocket); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_GetMaxPacketSize", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamNetworking_GetMaxPacketSize(IntPtr instancePtr, SNetSocket_t hSocket); -#endregion -#region SteamNetworkingMessages - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingMessages_SendMessageToUser", CallingConvention = CallingConvention.Cdecl)] - public static extern EResult ISteamNetworkingMessages_SendMessageToUser(IntPtr instancePtr, ref SteamNetworkingIdentity identityRemote, IntPtr pubData, uint cubData, int nSendFlags, int nRemoteChannel); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingMessages_ReceiveMessagesOnChannel", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamNetworkingMessages_ReceiveMessagesOnChannel(IntPtr instancePtr, int nLocalChannel, [In, Out] IntPtr[] ppOutMessages, int nMaxMessages); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingMessages_AcceptSessionWithUser", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingMessages_AcceptSessionWithUser(IntPtr instancePtr, ref SteamNetworkingIdentity identityRemote); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingMessages_CloseSessionWithUser", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingMessages_CloseSessionWithUser(IntPtr instancePtr, ref SteamNetworkingIdentity identityRemote); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingMessages_CloseChannelWithUser", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingMessages_CloseChannelWithUser(IntPtr instancePtr, ref SteamNetworkingIdentity identityRemote, int nLocalChannel); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingMessages_GetSessionConnectionInfo", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamNetworkingConnectionState ISteamNetworkingMessages_GetSessionConnectionInfo(IntPtr instancePtr, ref SteamNetworkingIdentity identityRemote, out SteamNetConnectionInfo_t pConnectionInfo, out SteamNetConnectionRealTimeStatus_t pQuickStatus); -#endregion -#region SteamNetworkingSockets - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_CreateListenSocketIP", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworkingSockets_CreateListenSocketIP(IntPtr instancePtr, ref SteamNetworkingIPAddr localAddress, int nOptions, [In, Out] SteamNetworkingConfigValue_t[] pOptions); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_ConnectByIPAddress", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworkingSockets_ConnectByIPAddress(IntPtr instancePtr, ref SteamNetworkingIPAddr address, int nOptions, [In, Out] SteamNetworkingConfigValue_t[] pOptions); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2P", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworkingSockets_CreateListenSocketP2P(IntPtr instancePtr, int nLocalVirtualPort, int nOptions, [In, Out] SteamNetworkingConfigValue_t[] pOptions); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_ConnectP2P", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworkingSockets_ConnectP2P(IntPtr instancePtr, ref SteamNetworkingIdentity identityRemote, int nRemoteVirtualPort, int nOptions, [In, Out] SteamNetworkingConfigValue_t[] pOptions); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_AcceptConnection", CallingConvention = CallingConvention.Cdecl)] - public static extern EResult ISteamNetworkingSockets_AcceptConnection(IntPtr instancePtr, HSteamNetConnection hConn); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_CloseConnection", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_CloseConnection(IntPtr instancePtr, HSteamNetConnection hPeer, int nReason, InteropHelp.UTF8StringHandle pszDebug, [MarshalAs(UnmanagedType.I1)] bool bEnableLinger); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_CloseListenSocket", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_CloseListenSocket(IntPtr instancePtr, HSteamListenSocket hSocket); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_SetConnectionUserData", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_SetConnectionUserData(IntPtr instancePtr, HSteamNetConnection hPeer, long nUserData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetConnectionUserData", CallingConvention = CallingConvention.Cdecl)] - public static extern long ISteamNetworkingSockets_GetConnectionUserData(IntPtr instancePtr, HSteamNetConnection hPeer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_SetConnectionName", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamNetworkingSockets_SetConnectionName(IntPtr instancePtr, HSteamNetConnection hPeer, InteropHelp.UTF8StringHandle pszName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetConnectionName", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_GetConnectionName(IntPtr instancePtr, HSteamNetConnection hPeer, IntPtr pszName, int nMaxLen); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_SendMessageToConnection", CallingConvention = CallingConvention.Cdecl)] - public static extern EResult ISteamNetworkingSockets_SendMessageToConnection(IntPtr instancePtr, HSteamNetConnection hConn, IntPtr pData, uint cbData, int nSendFlags, out long pOutMessageNumber); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_SendMessages", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamNetworkingSockets_SendMessages(IntPtr instancePtr, int nMessages, [In, Out] SteamNetworkingMessage_t[] pMessages, [In, Out] long[] pOutMessageNumberOrResult); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_FlushMessagesOnConnection", CallingConvention = CallingConvention.Cdecl)] - public static extern EResult ISteamNetworkingSockets_FlushMessagesOnConnection(IntPtr instancePtr, HSteamNetConnection hConn); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnConnection", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamNetworkingSockets_ReceiveMessagesOnConnection(IntPtr instancePtr, HSteamNetConnection hConn, [In, Out] IntPtr[] ppOutMessages, int nMaxMessages); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetConnectionInfo", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_GetConnectionInfo(IntPtr instancePtr, HSteamNetConnection hConn, out SteamNetConnectionInfo_t pInfo); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetConnectionRealTimeStatus", CallingConvention = CallingConvention.Cdecl)] - public static extern EResult ISteamNetworkingSockets_GetConnectionRealTimeStatus(IntPtr instancePtr, HSteamNetConnection hConn, ref SteamNetConnectionRealTimeStatus_t pStatus, int nLanes, ref SteamNetConnectionRealTimeLaneStatus_t pLanes); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetDetailedConnectionStatus", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamNetworkingSockets_GetDetailedConnectionStatus(IntPtr instancePtr, HSteamNetConnection hConn, IntPtr pszBuf, int cbBuf); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetListenSocketAddress", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_GetListenSocketAddress(IntPtr instancePtr, HSteamListenSocket hSocket, out SteamNetworkingIPAddr address); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_CreateSocketPair", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_CreateSocketPair(IntPtr instancePtr, out HSteamNetConnection pOutConnection1, out HSteamNetConnection pOutConnection2, [MarshalAs(UnmanagedType.I1)] bool bUseNetworkLoopback, ref SteamNetworkingIdentity pIdentity1, ref SteamNetworkingIdentity pIdentity2); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_ConfigureConnectionLanes", CallingConvention = CallingConvention.Cdecl)] - public static extern EResult ISteamNetworkingSockets_ConfigureConnectionLanes(IntPtr instancePtr, HSteamNetConnection hConn, int nNumLanes, out int pLanePriorities, out ushort pLaneWeights); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetIdentity", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_GetIdentity(IntPtr instancePtr, out SteamNetworkingIdentity pIdentity); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_InitAuthentication", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamNetworkingAvailability ISteamNetworkingSockets_InitAuthentication(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetAuthenticationStatus", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamNetworkingAvailability ISteamNetworkingSockets_GetAuthenticationStatus(IntPtr instancePtr, out SteamNetAuthenticationStatus_t pDetails); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_CreatePollGroup", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworkingSockets_CreatePollGroup(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_DestroyPollGroup", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_DestroyPollGroup(IntPtr instancePtr, HSteamNetPollGroup hPollGroup); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_SetConnectionPollGroup", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_SetConnectionPollGroup(IntPtr instancePtr, HSteamNetConnection hConn, HSteamNetPollGroup hPollGroup); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_ReceiveMessagesOnPollGroup", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamNetworkingSockets_ReceiveMessagesOnPollGroup(IntPtr instancePtr, HSteamNetPollGroup hPollGroup, [In, Out] IntPtr[] ppOutMessages, int nMaxMessages); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_ReceivedRelayAuthTicket", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_ReceivedRelayAuthTicket(IntPtr instancePtr, IntPtr pvTicket, int cbTicket, out SteamDatagramRelayAuthTicket pOutParsedTicket); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_FindRelayAuthTicketForServer", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamNetworkingSockets_FindRelayAuthTicketForServer(IntPtr instancePtr, ref SteamNetworkingIdentity identityGameServer, int nRemoteVirtualPort, out SteamDatagramRelayAuthTicket pOutParsedTicket); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_ConnectToHostedDedicatedServer", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworkingSockets_ConnectToHostedDedicatedServer(IntPtr instancePtr, ref SteamNetworkingIdentity identityTarget, int nRemoteVirtualPort, int nOptions, [In, Out] SteamNetworkingConfigValue_t[] pOptions); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPort", CallingConvention = CallingConvention.Cdecl)] - public static extern ushort ISteamNetworkingSockets_GetHostedDedicatedServerPort(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerPOPID", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworkingSockets_GetHostedDedicatedServerPOPID(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetHostedDedicatedServerAddress", CallingConvention = CallingConvention.Cdecl)] - public static extern EResult ISteamNetworkingSockets_GetHostedDedicatedServerAddress(IntPtr instancePtr, out SteamDatagramHostedAddress pRouting); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket(IntPtr instancePtr, int nLocalVirtualPort, int nOptions, [In, Out] SteamNetworkingConfigValue_t[] pOptions); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetGameCoordinatorServerLogin", CallingConvention = CallingConvention.Cdecl)] - public static extern EResult ISteamNetworkingSockets_GetGameCoordinatorServerLogin(IntPtr instancePtr, IntPtr pLoginInfo, out int pcbSignedBlob, IntPtr pBlob); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_ConnectP2PCustomSignaling", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworkingSockets_ConnectP2PCustomSignaling(IntPtr instancePtr, out ISteamNetworkingConnectionSignaling pSignaling, ref SteamNetworkingIdentity pPeerIdentity, int nRemoteVirtualPort, int nOptions, [In, Out] SteamNetworkingConfigValue_t[] pOptions); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_ReceivedP2PCustomSignal", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_ReceivedP2PCustomSignal(IntPtr instancePtr, IntPtr pMsg, int cbMsg, out ISteamNetworkingSignalingRecvContext pContext); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetCertificateRequest", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_GetCertificateRequest(IntPtr instancePtr, out int pcbBlob, IntPtr pBlob, out SteamNetworkingErrMsg errMsg); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_SetCertificate", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_SetCertificate(IntPtr instancePtr, IntPtr pCertificate, int cbCertificate, out SteamNetworkingErrMsg errMsg); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_ResetIdentity", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamNetworkingSockets_ResetIdentity(IntPtr instancePtr, ref SteamNetworkingIdentity pIdentity); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_RunCallbacks", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamNetworkingSockets_RunCallbacks(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_BeginAsyncRequestFakeIP", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingSockets_BeginAsyncRequestFakeIP(IntPtr instancePtr, int nNumPorts); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetFakeIP", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamNetworkingSockets_GetFakeIP(IntPtr instancePtr, int idxFirstPort, out SteamNetworkingFakeIPResult_t pInfo); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_CreateListenSocketP2PFakeIP", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamNetworkingSockets_CreateListenSocketP2PFakeIP(IntPtr instancePtr, int idxFakePort, int nOptions, [In, Out] SteamNetworkingConfigValue_t[] pOptions); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_GetRemoteFakeIPForConnection", CallingConvention = CallingConvention.Cdecl)] - public static extern EResult ISteamNetworkingSockets_GetRemoteFakeIPForConnection(IntPtr instancePtr, HSteamNetConnection hConn, out SteamNetworkingIPAddr pOutAddr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingSockets_CreateFakeUDPPort", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamNetworkingSockets_CreateFakeUDPPort(IntPtr instancePtr, int idxFakeServerPort); -#endregion -#region SteamNetworkingUtils - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_AllocateMessage", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamNetworkingUtils_AllocateMessage(IntPtr instancePtr, int cbAllocateBuffer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_InitRelayNetworkAccess", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamNetworkingUtils_InitRelayNetworkAccess(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_GetRelayNetworkStatus", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamNetworkingAvailability ISteamNetworkingUtils_GetRelayNetworkStatus(IntPtr instancePtr, out SteamRelayNetworkStatus_t pDetails); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_GetLocalPingLocation", CallingConvention = CallingConvention.Cdecl)] - public static extern float ISteamNetworkingUtils_GetLocalPingLocation(IntPtr instancePtr, out SteamNetworkPingLocation_t result); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_EstimatePingTimeBetweenTwoLocations", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamNetworkingUtils_EstimatePingTimeBetweenTwoLocations(IntPtr instancePtr, ref SteamNetworkPingLocation_t location1, ref SteamNetworkPingLocation_t location2); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_EstimatePingTimeFromLocalHost", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamNetworkingUtils_EstimatePingTimeFromLocalHost(IntPtr instancePtr, ref SteamNetworkPingLocation_t remoteLocation); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_ConvertPingLocationToString", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamNetworkingUtils_ConvertPingLocationToString(IntPtr instancePtr, ref SteamNetworkPingLocation_t location, IntPtr pszBuf, int cchBufSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_ParsePingLocationString", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingUtils_ParsePingLocationString(IntPtr instancePtr, InteropHelp.UTF8StringHandle pszString, out SteamNetworkPingLocation_t result); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_CheckPingDataUpToDate", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingUtils_CheckPingDataUpToDate(IntPtr instancePtr, float flMaxAgeSeconds); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_GetPingToDataCenter", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamNetworkingUtils_GetPingToDataCenter(IntPtr instancePtr, SteamNetworkingPOPID popID, out SteamNetworkingPOPID pViaRelayPoP); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_GetDirectPingToPOP", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamNetworkingUtils_GetDirectPingToPOP(IntPtr instancePtr, SteamNetworkingPOPID popID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_GetPOPCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamNetworkingUtils_GetPOPCount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_GetPOPList", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamNetworkingUtils_GetPOPList(IntPtr instancePtr, out SteamNetworkingPOPID list, int nListSz); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_GetLocalTimestamp", CallingConvention = CallingConvention.Cdecl)] - public static extern long ISteamNetworkingUtils_GetLocalTimestamp(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_SetDebugOutputFunction", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamNetworkingUtils_SetDebugOutputFunction(IntPtr instancePtr, ESteamNetworkingSocketsDebugOutputType eDetailLevel, FSteamNetworkingSocketsDebugOutput pfnFunc); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_IsFakeIPv4", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingUtils_IsFakeIPv4(IntPtr instancePtr, uint nIPv4); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_GetIPv4FakeIPType", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamNetworkingFakeIPType ISteamNetworkingUtils_GetIPv4FakeIPType(IntPtr instancePtr, uint nIPv4); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_GetRealIdentityForFakeIP", CallingConvention = CallingConvention.Cdecl)] - public static extern EResult ISteamNetworkingUtils_GetRealIdentityForFakeIP(IntPtr instancePtr, ref SteamNetworkingIPAddr fakeIP, out SteamNetworkingIdentity pOutRealIdentity); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_SetConfigValue", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingUtils_SetConfigValue(IntPtr instancePtr, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, IntPtr scopeObj, ESteamNetworkingConfigDataType eDataType, IntPtr pArg); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_GetConfigValue", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamNetworkingGetConfigValueResult ISteamNetworkingUtils_GetConfigValue(IntPtr instancePtr, ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, IntPtr scopeObj, out ESteamNetworkingConfigDataType pOutDataType, IntPtr pResult, ref ulong cbResult); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_GetConfigValueInfo", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamNetworkingUtils_GetConfigValueInfo(IntPtr instancePtr, ESteamNetworkingConfigValue eValue, out ESteamNetworkingConfigDataType pOutDataType, out ESteamNetworkingConfigScope pOutScope); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_IterateGenericEditableConfigValues", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamNetworkingConfigValue ISteamNetworkingUtils_IterateGenericEditableConfigValues(IntPtr instancePtr, ESteamNetworkingConfigValue eCurrent, [MarshalAs(UnmanagedType.I1)] bool bEnumerateDevVars); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ToString", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamNetworkingUtils_SteamNetworkingIPAddr_ToString(IntPtr instancePtr, ref SteamNetworkingIPAddr addr, IntPtr buf, uint cbBuf, [MarshalAs(UnmanagedType.I1)] bool bWithPort); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_ParseString", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingUtils_SteamNetworkingIPAddr_ParseString(IntPtr instancePtr, out SteamNetworkingIPAddr pAddr, InteropHelp.UTF8StringHandle pszStr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIPAddr_GetFakeIPType", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamNetworkingFakeIPType ISteamNetworkingUtils_SteamNetworkingIPAddr_GetFakeIPType(IntPtr instancePtr, ref SteamNetworkingIPAddr addr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ToString", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamNetworkingUtils_SteamNetworkingIdentity_ToString(IntPtr instancePtr, ref SteamNetworkingIdentity identity, IntPtr buf, uint cbBuf); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString(IntPtr instancePtr, out SteamNetworkingIdentity pIdentity, InteropHelp.UTF8StringHandle pszStr); -#endregion -#region SteamParentalSettings - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParentalSettings_BIsParentalLockEnabled", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamParentalSettings_BIsParentalLockEnabled(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParentalSettings_BIsParentalLockLocked", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamParentalSettings_BIsParentalLockLocked(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParentalSettings_BIsAppBlocked", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamParentalSettings_BIsAppBlocked(IntPtr instancePtr, AppId_t nAppID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParentalSettings_BIsAppInBlockList", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamParentalSettings_BIsAppInBlockList(IntPtr instancePtr, AppId_t nAppID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParentalSettings_BIsFeatureBlocked", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamParentalSettings_BIsFeatureBlocked(IntPtr instancePtr, EParentalFeature eFeature); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParentalSettings_BIsFeatureInBlockList", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamParentalSettings_BIsFeatureInBlockList(IntPtr instancePtr, EParentalFeature eFeature); -#endregion -#region SteamRemotePlay - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_GetSessionCount", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamRemotePlay_GetSessionCount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_GetSessionID", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamRemotePlay_GetSessionID(IntPtr instancePtr, int iSessionIndex); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_GetSessionSteamID", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemotePlay_GetSessionSteamID(IntPtr instancePtr, RemotePlaySessionID_t unSessionID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_GetSessionClientName", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamRemotePlay_GetSessionClientName(IntPtr instancePtr, RemotePlaySessionID_t unSessionID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_GetSessionClientFormFactor", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamDeviceFormFactor ISteamRemotePlay_GetSessionClientFormFactor(IntPtr instancePtr, RemotePlaySessionID_t unSessionID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_BGetSessionClientResolution", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemotePlay_BGetSessionClientResolution(IntPtr instancePtr, RemotePlaySessionID_t unSessionID, out int pnResolutionX, out int pnResolutionY); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_BSendRemotePlayTogetherInvite", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemotePlay_BSendRemotePlayTogetherInvite(IntPtr instancePtr, CSteamID steamIDFriend); -#endregion -#region SteamRemoteStorage - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWrite", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_FileWrite(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile, byte[] pvData, int cubData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileRead", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamRemoteStorage_FileRead(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile, byte[] pvData, int cubDataToRead); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteAsync", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_FileWriteAsync(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile, byte[] pvData, uint cubData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileReadAsync", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_FileReadAsync(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile, uint nOffset, uint cubToRead); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_FileReadAsyncComplete(IntPtr instancePtr, SteamAPICall_t hReadCall, byte[] pvBuffer, uint cubToRead); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileForget", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_FileForget(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileDelete", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_FileDelete(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileShare", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_FileShare(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_SetSyncPlatforms", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_SetSyncPlatforms(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile, ERemoteStoragePlatform eRemoteStoragePlatform); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_FileWriteStreamOpen(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_FileWriteStreamWriteChunk(IntPtr instancePtr, UGCFileWriteStreamHandle_t writeHandle, byte[] pvData, int cubData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamClose", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_FileWriteStreamClose(IntPtr instancePtr, UGCFileWriteStreamHandle_t writeHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_FileWriteStreamCancel(IntPtr instancePtr, UGCFileWriteStreamHandle_t writeHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FileExists", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_FileExists(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_FilePersisted", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_FilePersisted(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileSize", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamRemoteStorage_GetFileSize(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileTimestamp", CallingConvention = CallingConvention.Cdecl)] - public static extern long ISteamRemoteStorage_GetFileTimestamp(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetSyncPlatforms", CallingConvention = CallingConvention.Cdecl)] - public static extern ERemoteStoragePlatform ISteamRemoteStorage_GetSyncPlatforms(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamRemoteStorage_GetFileCount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetFileNameAndSize", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamRemoteStorage_GetFileNameAndSize(IntPtr instancePtr, int iFile, out int pnFileSizeInBytes); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetQuota", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_GetQuota(IntPtr instancePtr, out ulong pnTotalBytes, out ulong puAvailableBytes); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_IsCloudEnabledForAccount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_IsCloudEnabledForApp(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamRemoteStorage_SetCloudEnabledForApp(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bEnabled); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_UGCDownload", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_UGCDownload(IntPtr instancePtr, UGCHandle_t hContent, uint unPriority); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_GetUGCDownloadProgress(IntPtr instancePtr, UGCHandle_t hContent, out int pnBytesDownloaded, out int pnBytesExpected); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetUGCDetails", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_GetUGCDetails(IntPtr instancePtr, UGCHandle_t hContent, out AppId_t pnAppID, out IntPtr ppchName, out int pnFileSizeInBytes, out CSteamID pSteamIDOwner); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_UGCRead", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamRemoteStorage_UGCRead(IntPtr instancePtr, UGCHandle_t hContent, byte[] pvData, int cubDataToRead, uint cOffset, EUGCReadAction eAction); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetCachedUGCCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamRemoteStorage_GetCachedUGCCount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_GetCachedUGCHandle(IntPtr instancePtr, int iCachedContent); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_PublishWorkshopFile", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_PublishWorkshopFile(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFile, InteropHelp.UTF8StringHandle pchPreviewFile, AppId_t nConsumerAppId, InteropHelp.UTF8StringHandle pchTitle, InteropHelp.UTF8StringHandle pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, IntPtr pTags, EWorkshopFileType eWorkshopFileType); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_CreatePublishedFileUpdateRequest(IntPtr instancePtr, PublishedFileId_t unPublishedFileId); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_UpdatePublishedFileFile(IntPtr instancePtr, PublishedFileUpdateHandle_t updateHandle, InteropHelp.UTF8StringHandle pchFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_UpdatePublishedFilePreviewFile(IntPtr instancePtr, PublishedFileUpdateHandle_t updateHandle, InteropHelp.UTF8StringHandle pchPreviewFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_UpdatePublishedFileTitle(IntPtr instancePtr, PublishedFileUpdateHandle_t updateHandle, InteropHelp.UTF8StringHandle pchTitle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_UpdatePublishedFileDescription(IntPtr instancePtr, PublishedFileUpdateHandle_t updateHandle, InteropHelp.UTF8StringHandle pchDescription); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_UpdatePublishedFileVisibility(IntPtr instancePtr, PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_UpdatePublishedFileTags(IntPtr instancePtr, PublishedFileUpdateHandle_t updateHandle, IntPtr pTags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_CommitPublishedFileUpdate(IntPtr instancePtr, PublishedFileUpdateHandle_t updateHandle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_GetPublishedFileDetails(IntPtr instancePtr, PublishedFileId_t unPublishedFileId, uint unMaxSecondsOld); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_DeletePublishedFile", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_DeletePublishedFile(IntPtr instancePtr, PublishedFileId_t unPublishedFileId); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_EnumerateUserPublishedFiles(IntPtr instancePtr, uint unStartIndex); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_SubscribePublishedFile", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_SubscribePublishedFile(IntPtr instancePtr, PublishedFileId_t unPublishedFileId); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_EnumerateUserSubscribedFiles(IntPtr instancePtr, uint unStartIndex); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_UnsubscribePublishedFile(IntPtr instancePtr, PublishedFileId_t unPublishedFileId); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(IntPtr instancePtr, PublishedFileUpdateHandle_t updateHandle, InteropHelp.UTF8StringHandle pchChangeDescription); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_GetPublishedItemVoteDetails(IntPtr instancePtr, PublishedFileId_t unPublishedFileId); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_UpdateUserPublishedItemVote(IntPtr instancePtr, PublishedFileId_t unPublishedFileId, [MarshalAs(UnmanagedType.I1)] bool bVoteUp); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_GetUserPublishedItemVoteDetails(IntPtr instancePtr, PublishedFileId_t unPublishedFileId); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(IntPtr instancePtr, CSteamID steamId, uint unStartIndex, IntPtr pRequiredTags, IntPtr pExcludedTags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_PublishVideo", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_PublishVideo(IntPtr instancePtr, EWorkshopVideoProvider eVideoProvider, InteropHelp.UTF8StringHandle pchVideoAccount, InteropHelp.UTF8StringHandle pchVideoIdentifier, InteropHelp.UTF8StringHandle pchPreviewFile, AppId_t nConsumerAppId, InteropHelp.UTF8StringHandle pchTitle, InteropHelp.UTF8StringHandle pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, IntPtr pTags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_SetUserPublishedFileAction(IntPtr instancePtr, PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(IntPtr instancePtr, EWorkshopFileAction eAction, uint unStartIndex); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(IntPtr instancePtr, EWorkshopEnumerationType eEnumerationType, uint unStartIndex, uint unCount, uint unDays, IntPtr pTags, IntPtr pUserTags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamRemoteStorage_UGCDownloadToLocation(IntPtr instancePtr, UGCHandle_t hContent, InteropHelp.UTF8StringHandle pchLocation, uint unPriority); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetLocalFileChangeCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamRemoteStorage_GetLocalFileChangeCount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_GetLocalFileChange", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamRemoteStorage_GetLocalFileChange(IntPtr instancePtr, int iFile, out ERemoteStorageLocalFileChange pEChangeType, out ERemoteStorageFilePathType pEFilePathType); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_BeginFileWriteBatch", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_BeginFileWriteBatch(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStorage_EndFileWriteBatch", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamRemoteStorage_EndFileWriteBatch(IntPtr instancePtr); -#endregion -#region SteamScreenshots - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots_WriteScreenshot", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamScreenshots_WriteScreenshot(IntPtr instancePtr, byte[] pubRGB, uint cubRGB, int nWidth, int nHeight); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots_AddScreenshotToLibrary", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamScreenshots_AddScreenshotToLibrary(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchFilename, InteropHelp.UTF8StringHandle pchThumbnailFilename, int nWidth, int nHeight); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots_TriggerScreenshot", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamScreenshots_TriggerScreenshot(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots_HookScreenshots", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamScreenshots_HookScreenshots(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bHook); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots_SetLocation", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamScreenshots_SetLocation(IntPtr instancePtr, ScreenshotHandle hScreenshot, InteropHelp.UTF8StringHandle pchLocation); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots_TagUser", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamScreenshots_TagUser(IntPtr instancePtr, ScreenshotHandle hScreenshot, CSteamID steamID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots_TagPublishedFile", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamScreenshots_TagPublishedFile(IntPtr instancePtr, ScreenshotHandle hScreenshot, PublishedFileId_t unPublishedFileID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots_IsScreenshotsHooked", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamScreenshots_IsScreenshotsHooked(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots_AddVRScreenshotToLibrary", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamScreenshots_AddVRScreenshotToLibrary(IntPtr instancePtr, EVRScreenshotType eType, InteropHelp.UTF8StringHandle pchFilename, InteropHelp.UTF8StringHandle pchVRFilename); -#endregion -#region SteamUGC - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_CreateQueryUserUGCRequest", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_CreateQueryUserUGCRequest(IntPtr instancePtr, AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint unPage); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_CreateQueryAllUGCRequestPage", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_CreateQueryAllUGCRequestPage(IntPtr instancePtr, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint unPage); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_CreateQueryAllUGCRequestCursor", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_CreateQueryAllUGCRequestCursor(IntPtr instancePtr, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, InteropHelp.UTF8StringHandle pchCursor); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_CreateQueryUGCDetailsRequest", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_CreateQueryUGCDetailsRequest(IntPtr instancePtr, [In, Out] PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SendQueryUGCRequest", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_SendQueryUGCRequest(IntPtr instancePtr, UGCQueryHandle_t handle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCResult", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_GetQueryUGCResult(IntPtr instancePtr, UGCQueryHandle_t handle, uint index, out SteamUGCDetails_t pDetails); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCNumTags", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUGC_GetQueryUGCNumTags(IntPtr instancePtr, UGCQueryHandle_t handle, uint index); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCTag", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_GetQueryUGCTag(IntPtr instancePtr, UGCQueryHandle_t handle, uint index, uint indexTag, IntPtr pchValue, uint cchValueSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCTagDisplayName", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_GetQueryUGCTagDisplayName(IntPtr instancePtr, UGCQueryHandle_t handle, uint index, uint indexTag, IntPtr pchValue, uint cchValueSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCPreviewURL", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_GetQueryUGCPreviewURL(IntPtr instancePtr, UGCQueryHandle_t handle, uint index, IntPtr pchURL, uint cchURLSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCMetadata", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_GetQueryUGCMetadata(IntPtr instancePtr, UGCQueryHandle_t handle, uint index, IntPtr pchMetadata, uint cchMetadatasize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCChildren", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_GetQueryUGCChildren(IntPtr instancePtr, UGCQueryHandle_t handle, uint index, [In, Out] PublishedFileId_t[] pvecPublishedFileID, uint cMaxEntries); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCStatistic", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_GetQueryUGCStatistic(IntPtr instancePtr, UGCQueryHandle_t handle, uint index, EItemStatistic eStatType, out ulong pStatValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUGC_GetQueryUGCNumAdditionalPreviews(IntPtr instancePtr, UGCQueryHandle_t handle, uint index); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_GetQueryUGCAdditionalPreview(IntPtr instancePtr, UGCQueryHandle_t handle, uint index, uint previewIndex, IntPtr pchURLOrVideoID, uint cchURLSize, IntPtr pchOriginalFileName, uint cchOriginalFileNameSize, out EItemPreviewType pPreviewType); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUGC_GetQueryUGCNumKeyValueTags(IntPtr instancePtr, UGCQueryHandle_t handle, uint index); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_GetQueryUGCKeyValueTag(IntPtr instancePtr, UGCQueryHandle_t handle, uint index, uint keyValueTagIndex, IntPtr pchKey, uint cchKeySize, IntPtr pchValue, uint cchValueSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryFirstUGCKeyValueTag", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_GetQueryFirstUGCKeyValueTag(IntPtr instancePtr, UGCQueryHandle_t handle, uint index, InteropHelp.UTF8StringHandle pchKey, IntPtr pchValue, uint cchValueSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCContentDescriptors", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUGC_GetQueryUGCContentDescriptors(IntPtr instancePtr, UGCQueryHandle_t handle, uint index, out EUGCContentDescriptorID pvecDescriptors, uint cMaxEntries); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_ReleaseQueryUGCRequest", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_ReleaseQueryUGCRequest(IntPtr instancePtr, UGCQueryHandle_t handle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddRequiredTag", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_AddRequiredTag(IntPtr instancePtr, UGCQueryHandle_t handle, InteropHelp.UTF8StringHandle pTagName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddRequiredTagGroup", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_AddRequiredTagGroup(IntPtr instancePtr, UGCQueryHandle_t handle, IntPtr pTagGroups); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddExcludedTag", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_AddExcludedTag(IntPtr instancePtr, UGCQueryHandle_t handle, InteropHelp.UTF8StringHandle pTagName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetReturnOnlyIDs", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetReturnOnlyIDs(IntPtr instancePtr, UGCQueryHandle_t handle, [MarshalAs(UnmanagedType.I1)] bool bReturnOnlyIDs); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetReturnKeyValueTags", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetReturnKeyValueTags(IntPtr instancePtr, UGCQueryHandle_t handle, [MarshalAs(UnmanagedType.I1)] bool bReturnKeyValueTags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetReturnLongDescription", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetReturnLongDescription(IntPtr instancePtr, UGCQueryHandle_t handle, [MarshalAs(UnmanagedType.I1)] bool bReturnLongDescription); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetReturnMetadata", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetReturnMetadata(IntPtr instancePtr, UGCQueryHandle_t handle, [MarshalAs(UnmanagedType.I1)] bool bReturnMetadata); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetReturnChildren", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetReturnChildren(IntPtr instancePtr, UGCQueryHandle_t handle, [MarshalAs(UnmanagedType.I1)] bool bReturnChildren); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetReturnAdditionalPreviews", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetReturnAdditionalPreviews(IntPtr instancePtr, UGCQueryHandle_t handle, [MarshalAs(UnmanagedType.I1)] bool bReturnAdditionalPreviews); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetReturnTotalOnly", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetReturnTotalOnly(IntPtr instancePtr, UGCQueryHandle_t handle, [MarshalAs(UnmanagedType.I1)] bool bReturnTotalOnly); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetReturnPlaytimeStats", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetReturnPlaytimeStats(IntPtr instancePtr, UGCQueryHandle_t handle, uint unDays); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetLanguage", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetLanguage(IntPtr instancePtr, UGCQueryHandle_t handle, InteropHelp.UTF8StringHandle pchLanguage); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetAllowCachedResponse", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetAllowCachedResponse(IntPtr instancePtr, UGCQueryHandle_t handle, uint unMaxAgeSeconds); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetCloudFileNameFilter", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetCloudFileNameFilter(IntPtr instancePtr, UGCQueryHandle_t handle, InteropHelp.UTF8StringHandle pMatchCloudFileName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetMatchAnyTag", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetMatchAnyTag(IntPtr instancePtr, UGCQueryHandle_t handle, [MarshalAs(UnmanagedType.I1)] bool bMatchAnyTag); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetSearchText", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetSearchText(IntPtr instancePtr, UGCQueryHandle_t handle, InteropHelp.UTF8StringHandle pSearchText); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetRankedByTrendDays", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetRankedByTrendDays(IntPtr instancePtr, UGCQueryHandle_t handle, uint unDays); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetTimeCreatedDateRange", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetTimeCreatedDateRange(IntPtr instancePtr, UGCQueryHandle_t handle, uint rtStart, uint rtEnd); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetTimeUpdatedDateRange", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetTimeUpdatedDateRange(IntPtr instancePtr, UGCQueryHandle_t handle, uint rtStart, uint rtEnd); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddRequiredKeyValueTag", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_AddRequiredKeyValueTag(IntPtr instancePtr, UGCQueryHandle_t handle, InteropHelp.UTF8StringHandle pKey, InteropHelp.UTF8StringHandle pValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RequestUGCDetails", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_RequestUGCDetails(IntPtr instancePtr, PublishedFileId_t nPublishedFileID, uint unMaxAgeSeconds); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_CreateItem", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_CreateItem(IntPtr instancePtr, AppId_t nConsumerAppId, EWorkshopFileType eFileType); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_StartItemUpdate", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_StartItemUpdate(IntPtr instancePtr, AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItemTitle", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetItemTitle(IntPtr instancePtr, UGCUpdateHandle_t handle, InteropHelp.UTF8StringHandle pchTitle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItemDescription", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetItemDescription(IntPtr instancePtr, UGCUpdateHandle_t handle, InteropHelp.UTF8StringHandle pchDescription); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItemUpdateLanguage", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetItemUpdateLanguage(IntPtr instancePtr, UGCUpdateHandle_t handle, InteropHelp.UTF8StringHandle pchLanguage); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItemMetadata", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetItemMetadata(IntPtr instancePtr, UGCUpdateHandle_t handle, InteropHelp.UTF8StringHandle pchMetaData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItemVisibility", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetItemVisibility(IntPtr instancePtr, UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItemTags", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetItemTags(IntPtr instancePtr, UGCUpdateHandle_t updateHandle, IntPtr pTags); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItemContent", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetItemContent(IntPtr instancePtr, UGCUpdateHandle_t handle, InteropHelp.UTF8StringHandle pszContentFolder); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItemPreview", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetItemPreview(IntPtr instancePtr, UGCUpdateHandle_t handle, InteropHelp.UTF8StringHandle pszPreviewFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetAllowLegacyUpload", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_SetAllowLegacyUpload(IntPtr instancePtr, UGCUpdateHandle_t handle, [MarshalAs(UnmanagedType.I1)] bool bAllowLegacyUpload); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_RemoveAllItemKeyValueTags(IntPtr instancePtr, UGCUpdateHandle_t handle); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveItemKeyValueTags", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_RemoveItemKeyValueTags(IntPtr instancePtr, UGCUpdateHandle_t handle, InteropHelp.UTF8StringHandle pchKey); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddItemKeyValueTag", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_AddItemKeyValueTag(IntPtr instancePtr, UGCUpdateHandle_t handle, InteropHelp.UTF8StringHandle pchKey, InteropHelp.UTF8StringHandle pchValue); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddItemPreviewFile", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_AddItemPreviewFile(IntPtr instancePtr, UGCUpdateHandle_t handle, InteropHelp.UTF8StringHandle pszPreviewFile, EItemPreviewType type); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddItemPreviewVideo", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_AddItemPreviewVideo(IntPtr instancePtr, UGCUpdateHandle_t handle, InteropHelp.UTF8StringHandle pszVideoID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_UpdateItemPreviewFile", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_UpdateItemPreviewFile(IntPtr instancePtr, UGCUpdateHandle_t handle, uint index, InteropHelp.UTF8StringHandle pszPreviewFile); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_UpdateItemPreviewVideo", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_UpdateItemPreviewVideo(IntPtr instancePtr, UGCUpdateHandle_t handle, uint index, InteropHelp.UTF8StringHandle pszVideoID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveItemPreview", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_RemoveItemPreview(IntPtr instancePtr, UGCUpdateHandle_t handle, uint index); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddContentDescriptor", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_AddContentDescriptor(IntPtr instancePtr, UGCUpdateHandle_t handle, EUGCContentDescriptorID descid); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveContentDescriptor", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_RemoveContentDescriptor(IntPtr instancePtr, UGCUpdateHandle_t handle, EUGCContentDescriptorID descid); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SubmitItemUpdate", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_SubmitItemUpdate(IntPtr instancePtr, UGCUpdateHandle_t handle, InteropHelp.UTF8StringHandle pchChangeNote); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetItemUpdateProgress", CallingConvention = CallingConvention.Cdecl)] - public static extern EItemUpdateStatus ISteamUGC_GetItemUpdateProgress(IntPtr instancePtr, UGCUpdateHandle_t handle, out ulong punBytesProcessed, out ulong punBytesTotal); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetUserItemVote", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_SetUserItemVote(IntPtr instancePtr, PublishedFileId_t nPublishedFileID, [MarshalAs(UnmanagedType.I1)] bool bVoteUp); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetUserItemVote", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_GetUserItemVote(IntPtr instancePtr, PublishedFileId_t nPublishedFileID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddItemToFavorites", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_AddItemToFavorites(IntPtr instancePtr, AppId_t nAppId, PublishedFileId_t nPublishedFileID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveItemFromFavorites", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_RemoveItemFromFavorites(IntPtr instancePtr, AppId_t nAppId, PublishedFileId_t nPublishedFileID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SubscribeItem", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_SubscribeItem(IntPtr instancePtr, PublishedFileId_t nPublishedFileID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_UnsubscribeItem", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_UnsubscribeItem(IntPtr instancePtr, PublishedFileId_t nPublishedFileID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetNumSubscribedItems", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUGC_GetNumSubscribedItems(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetSubscribedItems", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUGC_GetSubscribedItems(IntPtr instancePtr, [In, Out] PublishedFileId_t[] pvecPublishedFileID, uint cMaxEntries); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetItemState", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUGC_GetItemState(IntPtr instancePtr, PublishedFileId_t nPublishedFileID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetItemInstallInfo", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_GetItemInstallInfo(IntPtr instancePtr, PublishedFileId_t nPublishedFileID, out ulong punSizeOnDisk, IntPtr pchFolder, uint cchFolderSize, out uint punTimeStamp); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetItemDownloadInfo", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_GetItemDownloadInfo(IntPtr instancePtr, PublishedFileId_t nPublishedFileID, out ulong punBytesDownloaded, out ulong punBytesTotal); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_DownloadItem", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_DownloadItem(IntPtr instancePtr, PublishedFileId_t nPublishedFileID, [MarshalAs(UnmanagedType.I1)] bool bHighPriority); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_BInitWorkshopForGameServer", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_BInitWorkshopForGameServer(IntPtr instancePtr, DepotId_t unWorkshopDepotID, InteropHelp.UTF8StringHandle pszFolder); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SuspendDownloads", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUGC_SuspendDownloads(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bSuspend); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_StartPlaytimeTracking", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_StartPlaytimeTracking(IntPtr instancePtr, [In, Out] PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_StopPlaytimeTracking", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_StopPlaytimeTracking(IntPtr instancePtr, [In, Out] PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_StopPlaytimeTrackingForAllItems", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_StopPlaytimeTrackingForAllItems(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddDependency", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_AddDependency(IntPtr instancePtr, PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveDependency", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_RemoveDependency(IntPtr instancePtr, PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddAppDependency", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_AddAppDependency(IntPtr instancePtr, PublishedFileId_t nPublishedFileID, AppId_t nAppID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveAppDependency", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_RemoveAppDependency(IntPtr instancePtr, PublishedFileId_t nPublishedFileID, AppId_t nAppID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetAppDependencies", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_GetAppDependencies(IntPtr instancePtr, PublishedFileId_t nPublishedFileID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_DeleteItem", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_DeleteItem(IntPtr instancePtr, PublishedFileId_t nPublishedFileID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_ShowWorkshopEULA", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUGC_ShowWorkshopEULA(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetWorkshopEULAStatus", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUGC_GetWorkshopEULAStatus(IntPtr instancePtr); -#endregion -#region SteamUser - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetHSteamUser", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamUser_GetHSteamUser(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BLoggedOn", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUser_BLoggedOn(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetSteamID", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUser_GetSteamID(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_InitiateGameConnection_DEPRECATED", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamUser_InitiateGameConnection_DEPRECATED(IntPtr instancePtr, byte[] pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint unIPServer, ushort usPortServer, [MarshalAs(UnmanagedType.I1)] bool bSecure); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_TerminateGameConnection_DEPRECATED", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUser_TerminateGameConnection_DEPRECATED(IntPtr instancePtr, uint unIPServer, ushort usPortServer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_TrackAppUsageEvent", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUser_TrackAppUsageEvent(IntPtr instancePtr, CGameID gameID, int eAppUsageEvent, InteropHelp.UTF8StringHandle pchExtraInfo); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetUserDataFolder", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUser_GetUserDataFolder(IntPtr instancePtr, IntPtr pchBuffer, int cubBuffer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_StartVoiceRecording", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUser_StartVoiceRecording(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_StopVoiceRecording", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUser_StopVoiceRecording(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetAvailableVoice", CallingConvention = CallingConvention.Cdecl)] - public static extern EVoiceResult ISteamUser_GetAvailableVoice(IntPtr instancePtr, out uint pcbCompressed, IntPtr pcbUncompressed_Deprecated, uint nUncompressedVoiceDesiredSampleRate_Deprecated); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetVoice", CallingConvention = CallingConvention.Cdecl)] - public static extern EVoiceResult ISteamUser_GetVoice(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bWantCompressed, byte[] pDestBuffer, uint cbDestBufferSize, out uint nBytesWritten, [MarshalAs(UnmanagedType.I1)] bool bWantUncompressed_Deprecated, IntPtr pUncompressedDestBuffer_Deprecated, uint cbUncompressedDestBufferSize_Deprecated, IntPtr nUncompressBytesWritten_Deprecated, uint nUncompressedVoiceDesiredSampleRate_Deprecated); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_DecompressVoice", CallingConvention = CallingConvention.Cdecl)] - public static extern EVoiceResult ISteamUser_DecompressVoice(IntPtr instancePtr, byte[] pCompressed, uint cbCompressed, byte[] pDestBuffer, uint cbDestBufferSize, out uint nBytesWritten, uint nDesiredSampleRate); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetVoiceOptimalSampleRate", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUser_GetVoiceOptimalSampleRate(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetAuthSessionTicket", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUser_GetAuthSessionTicket(IntPtr instancePtr, byte[] pTicket, int cbMaxTicket, out uint pcbTicket, ref SteamNetworkingIdentity pSteamNetworkingIdentity); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetAuthTicketForWebApi", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUser_GetAuthTicketForWebApi(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchIdentity); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BeginAuthSession", CallingConvention = CallingConvention.Cdecl)] - public static extern EBeginAuthSessionResult ISteamUser_BeginAuthSession(IntPtr instancePtr, byte[] pAuthTicket, int cbAuthTicket, CSteamID steamID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_EndAuthSession", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUser_EndAuthSession(IntPtr instancePtr, CSteamID steamID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_CancelAuthTicket", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUser_CancelAuthTicket(IntPtr instancePtr, HAuthTicket hAuthTicket); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_UserHasLicenseForApp", CallingConvention = CallingConvention.Cdecl)] - public static extern EUserHasLicenseForAppResult ISteamUser_UserHasLicenseForApp(IntPtr instancePtr, CSteamID steamID, AppId_t appID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BIsBehindNAT", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUser_BIsBehindNAT(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_AdvertiseGame", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUser_AdvertiseGame(IntPtr instancePtr, CSteamID steamIDGameServer, uint unIPServer, ushort usPortServer); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_RequestEncryptedAppTicket", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUser_RequestEncryptedAppTicket(IntPtr instancePtr, byte[] pDataToInclude, int cbDataToInclude); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetEncryptedAppTicket", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUser_GetEncryptedAppTicket(IntPtr instancePtr, byte[] pTicket, int cbMaxTicket, out uint pcbTicket); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetGameBadgeLevel", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamUser_GetGameBadgeLevel(IntPtr instancePtr, int nSeries, [MarshalAs(UnmanagedType.I1)] bool bFoil); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetPlayerSteamLevel", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamUser_GetPlayerSteamLevel(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_RequestStoreAuthURL", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUser_RequestStoreAuthURL(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchRedirectURL); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BIsPhoneVerified", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUser_BIsPhoneVerified(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BIsTwoFactorEnabled", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUser_BIsTwoFactorEnabled(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BIsPhoneIdentifying", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUser_BIsPhoneIdentifying(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BIsPhoneRequiringVerification", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUser_BIsPhoneRequiringVerification(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetMarketEligibility", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUser_GetMarketEligibility(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetDurationControl", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUser_GetDurationControl(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BSetDurationControlOnlineState", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUser_BSetDurationControlOnlineState(IntPtr instancePtr, EDurationControlOnlineState eNewState); -#endregion -#region SteamUserStats - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_RequestCurrentStats", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_RequestCurrentStats(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetStatInt32", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetStatInt32(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName, out int pData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetStatFloat", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetStatFloat(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName, out float pData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_SetStatInt32", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_SetStatInt32(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName, int nData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_SetStatFloat", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_SetStatFloat(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName, float fData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_UpdateAvgRateStat", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_UpdateAvgRateStat(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName, float flCountThisSession, double dSessionLength); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetAchievement", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetAchievement(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName, out bool pbAchieved); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_SetAchievement", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_SetAchievement(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_ClearAchievement", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_ClearAchievement(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementAndUnlockTime", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetAchievementAndUnlockTime(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName, out bool pbAchieved, out uint punUnlockTime); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_StoreStats", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_StoreStats(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementIcon", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamUserStats_GetAchievementIcon(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementDisplayAttribute", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamUserStats_GetAchievementDisplayAttribute(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName, InteropHelp.UTF8StringHandle pchKey); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_IndicateAchievementProgress", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_IndicateAchievementProgress(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName, uint nCurProgress, uint nMaxProgress); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetNumAchievements", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUserStats_GetNumAchievements(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementName", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamUserStats_GetAchievementName(IntPtr instancePtr, uint iAchievement); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_RequestUserStats", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUserStats_RequestUserStats(IntPtr instancePtr, CSteamID steamIDUser); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetUserStatInt32", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetUserStatInt32(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchName, out int pData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetUserStatFloat", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetUserStatFloat(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchName, out float pData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetUserAchievement", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetUserAchievement(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchName, out bool pbAchieved); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetUserAchievementAndUnlockTime", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetUserAchievementAndUnlockTime(IntPtr instancePtr, CSteamID steamIDUser, InteropHelp.UTF8StringHandle pchName, out bool pbAchieved, out uint punUnlockTime); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_ResetAllStats", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_ResetAllStats(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bAchievementsToo); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_FindOrCreateLeaderboard", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUserStats_FindOrCreateLeaderboard(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_FindLeaderboard", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUserStats_FindLeaderboard(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchLeaderboardName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardName", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamUserStats_GetLeaderboardName(IntPtr instancePtr, SteamLeaderboard_t hSteamLeaderboard); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardEntryCount", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamUserStats_GetLeaderboardEntryCount(IntPtr instancePtr, SteamLeaderboard_t hSteamLeaderboard); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardSortMethod", CallingConvention = CallingConvention.Cdecl)] - public static extern ELeaderboardSortMethod ISteamUserStats_GetLeaderboardSortMethod(IntPtr instancePtr, SteamLeaderboard_t hSteamLeaderboard); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetLeaderboardDisplayType", CallingConvention = CallingConvention.Cdecl)] - public static extern ELeaderboardDisplayType ISteamUserStats_GetLeaderboardDisplayType(IntPtr instancePtr, SteamLeaderboard_t hSteamLeaderboard); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_DownloadLeaderboardEntries", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUserStats_DownloadLeaderboardEntries(IntPtr instancePtr, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_DownloadLeaderboardEntriesForUsers", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUserStats_DownloadLeaderboardEntriesForUsers(IntPtr instancePtr, SteamLeaderboard_t hSteamLeaderboard, [In, Out] CSteamID[] prgUsers, int cUsers); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetDownloadedLeaderboardEntry", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetDownloadedLeaderboardEntry(IntPtr instancePtr, SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, out LeaderboardEntry_t pLeaderboardEntry, [In, Out] int[] pDetails, int cDetailsMax); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_UploadLeaderboardScore", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUserStats_UploadLeaderboardScore(IntPtr instancePtr, SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int nScore, [In, Out] int[] pScoreDetails, int cScoreDetailsCount); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_AttachLeaderboardUGC", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUserStats_AttachLeaderboardUGC(IntPtr instancePtr, SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetNumberOfCurrentPlayers", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUserStats_GetNumberOfCurrentPlayers(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_RequestGlobalAchievementPercentages", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUserStats_RequestGlobalAchievementPercentages(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetMostAchievedAchievementInfo", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamUserStats_GetMostAchievedAchievementInfo(IntPtr instancePtr, IntPtr pchName, uint unNameBufLen, out float pflPercent, out bool pbAchieved); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetNextMostAchievedAchievementInfo", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamUserStats_GetNextMostAchievedAchievementInfo(IntPtr instancePtr, int iIteratorPrevious, IntPtr pchName, uint unNameBufLen, out float pflPercent, out bool pbAchieved); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementAchievedPercent", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetAchievementAchievedPercent(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName, out float pflPercent); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_RequestGlobalStats", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUserStats_RequestGlobalStats(IntPtr instancePtr, int nHistoryDays); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStatInt64", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetGlobalStatInt64(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchStatName, out long pData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStatDouble", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetGlobalStatDouble(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchStatName, out double pData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStatHistoryInt64", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamUserStats_GetGlobalStatHistoryInt64(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchStatName, [In, Out] long[] pData, uint cubData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetGlobalStatHistoryDouble", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamUserStats_GetGlobalStatHistoryDouble(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchStatName, [In, Out] double[] pData, uint cubData); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementProgressLimitsInt32", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetAchievementProgressLimitsInt32(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName, out int pnMinProgress, out int pnMaxProgress); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_GetAchievementProgressLimitsFloat", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUserStats_GetAchievementProgressLimitsFloat(IntPtr instancePtr, InteropHelp.UTF8StringHandle pchName, out float pfMinProgress, out float pfMaxProgress); -#endregion -#region SteamUtils - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetSecondsSinceAppActive", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUtils_GetSecondsSinceAppActive(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetSecondsSinceComputerActive", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUtils_GetSecondsSinceComputerActive(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetConnectedUniverse", CallingConvention = CallingConvention.Cdecl)] - public static extern EUniverse ISteamUtils_GetConnectedUniverse(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetServerRealTime", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUtils_GetServerRealTime(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetIPCountry", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamUtils_GetIPCountry(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetImageSize", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_GetImageSize(IntPtr instancePtr, int iImage, out uint pnWidth, out uint pnHeight); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetImageRGBA", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_GetImageRGBA(IntPtr instancePtr, int iImage, byte[] pubDest, int nDestBufferSize); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetCurrentBatteryPower", CallingConvention = CallingConvention.Cdecl)] - public static extern byte ISteamUtils_GetCurrentBatteryPower(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetAppID", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUtils_GetAppID(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_SetOverlayNotificationPosition", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUtils_SetOverlayNotificationPosition(IntPtr instancePtr, ENotificationPosition eNotificationPosition); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsAPICallCompleted", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_IsAPICallCompleted(IntPtr instancePtr, SteamAPICall_t hSteamAPICall, out bool pbFailed); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetAPICallFailureReason", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamAPICallFailure ISteamUtils_GetAPICallFailureReason(IntPtr instancePtr, SteamAPICall_t hSteamAPICall); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetAPICallResult", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_GetAPICallResult(IntPtr instancePtr, SteamAPICall_t hSteamAPICall, IntPtr pCallback, int cubCallback, int iCallbackExpected, out bool pbFailed); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetIPCCallCount", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUtils_GetIPCCallCount(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_SetWarningMessageHook", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUtils_SetWarningMessageHook(IntPtr instancePtr, SteamAPIWarningMessageHook_t pFunction); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsOverlayEnabled", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_IsOverlayEnabled(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_BOverlayNeedsPresent", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_BOverlayNeedsPresent(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_CheckFileSignature", CallingConvention = CallingConvention.Cdecl)] - public static extern ulong ISteamUtils_CheckFileSignature(IntPtr instancePtr, InteropHelp.UTF8StringHandle szFileName); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_ShowGamepadTextInput", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_ShowGamepadTextInput(IntPtr instancePtr, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, InteropHelp.UTF8StringHandle pchDescription, uint unCharMax, InteropHelp.UTF8StringHandle pchExistingText); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetEnteredGamepadTextLength", CallingConvention = CallingConvention.Cdecl)] - public static extern uint ISteamUtils_GetEnteredGamepadTextLength(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetEnteredGamepadTextInput", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_GetEnteredGamepadTextInput(IntPtr instancePtr, IntPtr pchText, uint cchText); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetSteamUILanguage", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr ISteamUtils_GetSteamUILanguage(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsSteamRunningInVR", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_IsSteamRunningInVR(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_SetOverlayNotificationInset", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUtils_SetOverlayNotificationInset(IntPtr instancePtr, int nHorizontalInset, int nVerticalInset); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsSteamInBigPictureMode", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_IsSteamInBigPictureMode(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_StartVRDashboard", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUtils_StartVRDashboard(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_IsVRHeadsetStreamingEnabled(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUtils_SetVRHeadsetStreamingEnabled(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bEnabled); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsSteamChinaLauncher", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_IsSteamChinaLauncher(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_InitFilterText", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_InitFilterText(IntPtr instancePtr, uint unFilterOptions); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_FilterText", CallingConvention = CallingConvention.Cdecl)] - public static extern int ISteamUtils_FilterText(IntPtr instancePtr, ETextFilteringContext eContext, CSteamID sourceSteamID, InteropHelp.UTF8StringHandle pchInputMessage, IntPtr pchOutFilteredText, uint nByteSizeOutFilteredText); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetIPv6ConnectivityState", CallingConvention = CallingConvention.Cdecl)] - public static extern ESteamIPv6ConnectivityState ISteamUtils_GetIPv6ConnectivityState(IntPtr instancePtr, ESteamIPv6ConnectivityProtocol eProtocol); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsSteamRunningOnSteamDeck", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_IsSteamRunningOnSteamDeck(IntPtr instancePtr); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_ShowFloatingGamepadTextInput", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_ShowFloatingGamepadTextInput(IntPtr instancePtr, EFloatingGamepadTextInputMode eKeyboardMode, int nTextFieldXPosition, int nTextFieldYPosition, int nTextFieldWidth, int nTextFieldHeight); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_SetGameLauncherMode", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamUtils_SetGameLauncherMode(IntPtr instancePtr, [MarshalAs(UnmanagedType.I1)] bool bLauncherMode); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_DismissFloatingGamepadTextInput", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamUtils_DismissFloatingGamepadTextInput(IntPtr instancePtr); -#endregion -#region SteamVideo - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamVideo_GetVideoURL", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamVideo_GetVideoURL(IntPtr instancePtr, AppId_t unVideoAppID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamVideo_IsBroadcasting", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamVideo_IsBroadcasting(IntPtr instancePtr, out int pnNumViewers); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamVideo_GetOPFSettings", CallingConvention = CallingConvention.Cdecl)] - public static extern void ISteamVideo_GetOPFSettings(IntPtr instancePtr, AppId_t unVideoAppID); - - [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamVideo_GetOPFStringForApp", CallingConvention = CallingConvention.Cdecl)] - [return: MarshalAs(UnmanagedType.I1)] - public static extern bool ISteamVideo_GetOPFStringForApp(IntPtr instancePtr, AppId_t unVideoAppID, IntPtr pchBuffer, ref int pnBufferSize); -#endregion - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/NativeMethods.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/NativeMethods.cs.meta deleted file mode 100644 index bca9941..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/NativeMethods.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 34b11825d034447449147528ae7c6201 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamCallbacks.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamCallbacks.cs deleted file mode 100644 index d26a33f..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamCallbacks.cs +++ /dev/null @@ -1,2939 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - // callbacks - //--------------------------------------------------------------------------------- - // Purpose: Sent when a new app is installed (not downloaded yet) - //--------------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamAppListCallbacks + 1)] - public struct SteamAppInstalled_t { - public const int k_iCallback = Constants.k_iSteamAppListCallbacks + 1; - public AppId_t m_nAppID; // ID of the app that installs - public int m_iInstallFolderIndex; // library folder the app is installed - } - - //--------------------------------------------------------------------------------- - // Purpose: Sent when an app is uninstalled - //--------------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamAppListCallbacks + 2)] - public struct SteamAppUninstalled_t { - public const int k_iCallback = Constants.k_iSteamAppListCallbacks + 2; - public AppId_t m_nAppID; // ID of the app that installs - public int m_iInstallFolderIndex; // library folder the app was installed - } - - // callbacks - //----------------------------------------------------------------------------- - // Purpose: posted after the user gains ownership of DLC & that DLC is installed - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamAppsCallbacks + 5)] - public struct DlcInstalled_t { - public const int k_iCallback = Constants.k_iSteamAppsCallbacks + 5; - public AppId_t m_nAppID; // AppID of the DLC - } - - //--------------------------------------------------------------------------------- - // Purpose: posted after the user gains executes a Steam URL with command line or query parameters - // such as steam://run/<appid>//-commandline/?param1=value1¶m2=value2¶m3=value3 etc - // while the game is already running. The new params can be queried - // with GetLaunchQueryParam and GetLaunchCommandLine - //--------------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamAppsCallbacks + 14)] - public struct NewUrlLaunchParameters_t { - public const int k_iCallback = Constants.k_iSteamAppsCallbacks + 14; - } - - //----------------------------------------------------------------------------- - // Purpose: response to RequestAppProofOfPurchaseKey/RequestAllProofOfPurchaseKeys - // for supporting third-party CD keys, or other proof-of-purchase systems. - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamAppsCallbacks + 21)] - public struct AppProofOfPurchaseKeyResponse_t { - public const int k_iCallback = Constants.k_iSteamAppsCallbacks + 21; - public EResult m_eResult; - public uint m_nAppID; - public uint m_cchKeyLength; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cubAppProofOfPurchaseKeyMax)] - private byte[] m_rgchKey_; - public string m_rgchKey - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchKey_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchKey_, Constants.k_cubAppProofOfPurchaseKeyMax); } - } - } - - //----------------------------------------------------------------------------- - // Purpose: response to GetFileDetails - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamAppsCallbacks + 23)] - public struct FileDetailsResult_t { - public const int k_iCallback = Constants.k_iSteamAppsCallbacks + 23; - public EResult m_eResult; - public ulong m_ulFileSize; // original file size in bytes - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)] - public byte[] m_FileSHA; // original file SHA1 hash - public uint m_unFlags; // - } - - //----------------------------------------------------------------------------- - // Purpose: called for games in Timed Trial mode - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamAppsCallbacks + 30)] - public struct TimedTrialStatus_t { - public const int k_iCallback = Constants.k_iSteamAppsCallbacks + 30; - public AppId_t m_unAppID; // appID - [MarshalAs(UnmanagedType.I1)] - public bool m_bIsOffline; // if true, time allowed / played refers to offline time, not total time - public uint m_unSecondsAllowed; // how many seconds the app can be played in total - public uint m_unSecondsPlayed; // how many seconds the app was already played - } - - // callbacks - //----------------------------------------------------------------------------- - // Purpose: called when a friends' status changes - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 4)] - public struct PersonaStateChange_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 4; - - public ulong m_ulSteamID; // steamID of the friend who changed - public EPersonaChange m_nChangeFlags; // what's changed - } - - //----------------------------------------------------------------------------- - // Purpose: posted when game overlay activates or deactivates - // the game can use this to be pause or resume single player games - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 31)] - public struct GameOverlayActivated_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 31; - public byte m_bActive; // true if it's just been activated, false otherwise - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserInitiated; // true if the user asked for the overlay to be activated/deactivated - public AppId_t m_nAppID; // the appID of the game (should always be the current game) - } - - //----------------------------------------------------------------------------- - // Purpose: called when the user tries to join a different game server from their friends list - // game client should attempt to connect to specified server when this is received - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 32)] - public struct GameServerChangeRequested_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 32; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)] - private byte[] m_rgchServer_; - public string m_rgchServer // server address ("127.0.0.1:27015", "tf2.valvesoftware.com") - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchServer_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchServer_, 64); } - } - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)] - private byte[] m_rgchPassword_; - public string m_rgchPassword // server password, if any - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchPassword_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchPassword_, 64); } - } - } - - //----------------------------------------------------------------------------- - // Purpose: called when the user tries to join a lobby from their friends list - // game client should attempt to connect to specified lobby when this is received - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 33)] - public struct GameLobbyJoinRequested_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 33; - public CSteamID m_steamIDLobby; - - // The friend they did the join via (will be invalid if not directly via a friend) - // - // On PS3, the friend will be invalid if this was triggered by a PSN invite via the XMB, but - // the account type will be console user so you can tell at least that this was from a PSN friend - // rather than a Steam friend. - public CSteamID m_steamIDFriend; - } - - //----------------------------------------------------------------------------- - // Purpose: called when an avatar is loaded in from a previous GetLargeFriendAvatar() call - // if the image wasn't already available - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 34)] - public struct AvatarImageLoaded_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 34; - public CSteamID m_steamID; // steamid the avatar has been loaded for - public int m_iImage; // the image index of the now loaded image - public int m_iWide; // width of the loaded image - public int m_iTall; // height of the loaded image - } - - //----------------------------------------------------------------------------- - // Purpose: marks the return of a request officer list call - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 35)] - public struct ClanOfficerListResponse_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 35; - public CSteamID m_steamIDClan; - public int m_cOfficers; - public byte m_bSuccess; - } - - //----------------------------------------------------------------------------- - // Purpose: callback indicating updated data about friends rich presence information - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 36)] - public struct FriendRichPresenceUpdate_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 36; - public CSteamID m_steamIDFriend; // friend who's rich presence has changed - public AppId_t m_nAppID; // the appID of the game (should always be the current game) - } - - //----------------------------------------------------------------------------- - // Purpose: called when the user tries to join a game from their friends list - // rich presence will have been set with the "connect" key which is set here - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 37)] - public struct GameRichPresenceJoinRequested_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 37; - public CSteamID m_steamIDFriend; // the friend they did the join via (will be invalid if not directly via a friend) - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchMaxRichPresenceValueLength)] - private byte[] m_rgchConnect_; - public string m_rgchConnect - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchConnect_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchConnect_, Constants.k_cchMaxRichPresenceValueLength); } - } - } - - //----------------------------------------------------------------------------- - // Purpose: a chat message has been received for a clan chat the game has joined - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 38)] - public struct GameConnectedClanChatMsg_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 38; - public CSteamID m_steamIDClanChat; - public CSteamID m_steamIDUser; - public int m_iMessageID; - } - - //----------------------------------------------------------------------------- - // Purpose: a user has joined a clan chat - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 39)] - public struct GameConnectedChatJoin_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 39; - public CSteamID m_steamIDClanChat; - public CSteamID m_steamIDUser; - } - - //----------------------------------------------------------------------------- - // Purpose: a user has left the chat we're in - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = 1)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 40)] - public struct GameConnectedChatLeave_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 40; - public CSteamID m_steamIDClanChat; - public CSteamID m_steamIDUser; - [MarshalAs(UnmanagedType.I1)] - public bool m_bKicked; // true if admin kicked - [MarshalAs(UnmanagedType.I1)] - public bool m_bDropped; // true if Steam connection dropped - } - - //----------------------------------------------------------------------------- - // Purpose: a DownloadClanActivityCounts() call has finished - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 41)] - public struct DownloadClanActivityCountsResult_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 41; - [MarshalAs(UnmanagedType.I1)] - public bool m_bSuccess; - } - - //----------------------------------------------------------------------------- - // Purpose: a JoinClanChatRoom() call has finished - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 42)] - public struct JoinClanChatRoomCompletionResult_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 42; - public CSteamID m_steamIDClanChat; - public EChatRoomEnterResponse m_eChatRoomEnterResponse; - } - - //----------------------------------------------------------------------------- - // Purpose: a chat message has been received from a user - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 43)] - public struct GameConnectedFriendChatMsg_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 43; - public CSteamID m_steamIDUser; - public int m_iMessageID; - } - - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 44)] - public struct FriendsGetFollowerCount_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 44; - public EResult m_eResult; - public CSteamID m_steamID; - public int m_nCount; - } - - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 45)] - public struct FriendsIsFollowing_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 45; - public EResult m_eResult; - public CSteamID m_steamID; - [MarshalAs(UnmanagedType.I1)] - public bool m_bIsFollowing; - } - - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 46)] - public struct FriendsEnumerateFollowingList_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 46; - public EResult m_eResult; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cEnumerateFollowersMax)] - public CSteamID[] m_rgSteamID; - public int m_nResultsReturned; - public int m_nTotalResultCount; - } - - //----------------------------------------------------------------------------- - // Purpose: reports the result of an attempt to change the user's persona name - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 47)] - public struct SetPersonaNameResponse_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 47; - - [MarshalAs(UnmanagedType.I1)] - public bool m_bSuccess; // true if name change succeeded completely. - [MarshalAs(UnmanagedType.I1)] - public bool m_bLocalSuccess; // true if name change was retained locally. (We might not have been able to communicate with Steam) - public EResult m_result; // detailed result code - } - - //----------------------------------------------------------------------------- - // Purpose: Invoked when the status of unread messages changes - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 48)] - public struct UnreadChatMessagesChanged_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 48; - } - - //----------------------------------------------------------------------------- - // Purpose: Dispatched when an overlay browser instance is navigated to a protocol/scheme registered by RegisterProtocolInOverlayBrowser() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 49)] - public struct OverlayBrowserProtocolNavigation_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 49; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1024)] - private byte[] rgchURI_; - public string rgchURI - { - get { return InteropHelp.ByteArrayToStringUTF8(rgchURI_); } - set { InteropHelp.StringToByteArrayUTF8(value, rgchURI_, 1024); } - } - } - - //----------------------------------------------------------------------------- - // Purpose: A user's equipped profile items have changed - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 50)] - public struct EquippedProfileItemsChanged_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 50; - public CSteamID m_steamID; - } - - //----------------------------------------------------------------------------- - // Purpose: - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 51)] - public struct EquippedProfileItems_t { - public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 51; - public EResult m_eResult; - public CSteamID m_steamID; - [MarshalAs(UnmanagedType.I1)] - public bool m_bHasAnimatedAvatar; - [MarshalAs(UnmanagedType.I1)] - public bool m_bHasAvatarFrame; - [MarshalAs(UnmanagedType.I1)] - public bool m_bHasProfileModifier; - [MarshalAs(UnmanagedType.I1)] - public bool m_bHasProfileBackground; - [MarshalAs(UnmanagedType.I1)] - public bool m_bHasMiniProfileBackground; - } - - // callbacks - // callback notification - A new message is available for reading from the message queue - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameCoordinatorCallbacks + 1)] - public struct GCMessageAvailable_t { - public const int k_iCallback = Constants.k_iSteamGameCoordinatorCallbacks + 1; - public uint m_nMessageSize; - } - - // callback notification - A message failed to make it to the GC. It may be down temporarily - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamGameCoordinatorCallbacks + 2)] - public struct GCMessageFailed_t { - public const int k_iCallback = Constants.k_iSteamGameCoordinatorCallbacks + 2; - } - - // callbacks - // client has been approved to connect to this game server - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 1)] - public struct GSClientApprove_t { - public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 1; - public CSteamID m_SteamID; // SteamID of approved player - public CSteamID m_OwnerSteamID; // SteamID of original owner for game license - } - - // client has been denied to connection to this game server - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 2)] - public struct GSClientDeny_t { - public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 2; - public CSteamID m_SteamID; - public EDenyReason m_eDenyReason; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] - private byte[] m_rgchOptionalText_; - public string m_rgchOptionalText - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchOptionalText_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchOptionalText_, 128); } - } - } - - // request the game server should kick the user - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 3)] - public struct GSClientKick_t { - public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 3; - public CSteamID m_SteamID; - public EDenyReason m_eDenyReason; - } - - // NOTE: callback values 4 and 5 are skipped because they are used for old deprecated callbacks, - // do not reuse them here. - // client achievement info - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 6)] - public struct GSClientAchievementStatus_t { - public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 6; - public ulong m_SteamID; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] - private byte[] m_pchAchievement_; - public string m_pchAchievement - { - get { return InteropHelp.ByteArrayToStringUTF8(m_pchAchievement_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_pchAchievement_, 128); } - } - [MarshalAs(UnmanagedType.I1)] - public bool m_bUnlocked; - } - - // received when the game server requests to be displayed as secure (VAC protected) - // m_bSecure is true if the game server should display itself as secure to users, false otherwise - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 15)] - public struct GSPolicyResponse_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 15; - public byte m_bSecure; - } - - // GS gameplay stats info - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 7)] - public struct GSGameplayStats_t { - public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 7; - public EResult m_eResult; // Result of the call - public int m_nRank; // Overall rank of the server (0-based) - public uint m_unTotalConnects; // Total number of clients who have ever connected to the server - public uint m_unTotalMinutesPlayed; // Total number of minutes ever played on the server - } - - // send as a reply to RequestUserGroupStatus() - [StructLayout(LayoutKind.Sequential, Pack = 1)] - [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 8)] - public struct GSClientGroupStatus_t { - public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 8; - public CSteamID m_SteamIDUser; - public CSteamID m_SteamIDGroup; - [MarshalAs(UnmanagedType.I1)] - public bool m_bMember; - [MarshalAs(UnmanagedType.I1)] - public bool m_bOfficer; - } - - // Sent as a reply to GetServerReputation() - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 9)] - public struct GSReputation_t { - public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 9; - public EResult m_eResult; // Result of the call; - public uint m_unReputationScore; // The reputation score for the game server - [MarshalAs(UnmanagedType.I1)] - public bool m_bBanned; // True if the server is banned from the Steam - // master servers - - // The following members are only filled out if m_bBanned is true. They will all - // be set to zero otherwise. Master server bans are by IP so it is possible to be - // banned even when the score is good high if there is a bad server on another port. - // This information can be used to determine which server is bad. - - public uint m_unBannedIP; // The IP of the banned server - public ushort m_usBannedPort; // The port of the banned server - public ulong m_ulBannedGameID; // The game ID the banned server is serving - public uint m_unBanExpires; // Time the ban expires, expressed in the Unix epoch (seconds since 1/1/1970) - } - - // Sent as a reply to AssociateWithClan() - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 10)] - public struct AssociateWithClanResult_t { - public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 10; - public EResult m_eResult; // Result of the call; - } - - // Sent as a reply to ComputeNewPlayerCompatibility() - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 11)] - public struct ComputeNewPlayerCompatibilityResult_t { - public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 11; - public EResult m_eResult; // Result of the call; - public int m_cPlayersThatDontLikeCandidate; - public int m_cPlayersThatCandidateDoesntLike; - public int m_cClanPlayersThatDontLikeCandidate; - public CSteamID m_SteamIDCandidate; - } - - // callbacks - //----------------------------------------------------------------------------- - // Purpose: called when the latests stats and achievements have been received - // from the server - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamGameServerStatsCallbacks)] - public struct GSStatsReceived_t { - public const int k_iCallback = Constants.k_iSteamGameServerStatsCallbacks; - public EResult m_eResult; // Success / error fetching the stats - public CSteamID m_steamIDUser; // The user for whom the stats are retrieved for - } - - //----------------------------------------------------------------------------- - // Purpose: result of a request to store the user stats for a game - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamGameServerStatsCallbacks + 1)] - public struct GSStatsStored_t { - public const int k_iCallback = Constants.k_iSteamGameServerStatsCallbacks + 1; - public EResult m_eResult; // success / error - public CSteamID m_steamIDUser; // The user for whom the stats were stored - } - - //----------------------------------------------------------------------------- - // Purpose: Callback indicating that a user's stats have been unloaded. - // Call RequestUserStats again to access stats for this user - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 8)] - public struct GSStatsUnloaded_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 8; - public CSteamID m_steamIDUser; // User whose stats have been unloaded - } - - // callbacks - //----------------------------------------------------------------------------- - // Purpose: The browser is ready for use - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 1)] - public struct HTML_BrowserReady_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 1; - public HHTMLBrowser unBrowserHandle; // this browser is now fully created and ready to navigate to pages - } - - //----------------------------------------------------------------------------- - // Purpose: the browser has a pending paint - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 2)] - public struct HTML_NeedsPaint_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 2; - public HHTMLBrowser unBrowserHandle; // the browser that needs the paint - public IntPtr pBGRA; // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called - public uint unWide; // the total width of the pBGRA texture - public uint unTall; // the total height of the pBGRA texture - public uint unUpdateX; // the offset in X for the damage rect for this update - public uint unUpdateY; // the offset in Y for the damage rect for this update - public uint unUpdateWide; // the width of the damage rect for this update - public uint unUpdateTall; // the height of the damage rect for this update - public uint unScrollX; // the page scroll the browser was at when this texture was rendered - public uint unScrollY; // the page scroll the browser was at when this texture was rendered - public float flPageScale; // the page scale factor on this page when rendered - public uint unPageSerial; // incremented on each new page load, you can use this to reject draws while navigating to new pages - } - - //----------------------------------------------------------------------------- - // Purpose: The browser wanted to navigate to a new page - // NOTE - you MUST call AllowStartRequest in response to this callback - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 3)] - public struct HTML_StartRequest_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 3; - public HHTMLBrowser unBrowserHandle; // the handle of the surface navigating - public string pchURL; // the url they wish to navigate to - public string pchTarget; // the html link target type (i.e _blank, _self, _parent, _top ) - public string pchPostData; // any posted data for the request - [MarshalAs(UnmanagedType.I1)] - public bool bIsRedirect; // true if this was a http/html redirect from the last load request - } - - //----------------------------------------------------------------------------- - // Purpose: The browser has been requested to close due to user interaction (usually from a javascript window.close() call) - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 4)] - public struct HTML_CloseBrowser_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 4; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - } - - //----------------------------------------------------------------------------- - // Purpose: the browser is navigating to a new url - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 5)] - public struct HTML_URLChanged_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 5; - public HHTMLBrowser unBrowserHandle; // the handle of the surface navigating - public string pchURL; // the url they wish to navigate to - public string pchPostData; // any posted data for the request - [MarshalAs(UnmanagedType.I1)] - public bool bIsRedirect; // true if this was a http/html redirect from the last load request - public string pchPageTitle; // the title of the page - [MarshalAs(UnmanagedType.I1)] - public bool bNewNavigation; // true if this was from a fresh tab and not a click on an existing page - } - - //----------------------------------------------------------------------------- - // Purpose: A page is finished loading - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 6)] - public struct HTML_FinishedRequest_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 6; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public string pchURL; // - public string pchPageTitle; // - } - - //----------------------------------------------------------------------------- - // Purpose: a request to load this url in a new tab - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 7)] - public struct HTML_OpenLinkInNewTab_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 7; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public string pchURL; // - } - - //----------------------------------------------------------------------------- - // Purpose: the page has a new title now - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 8)] - public struct HTML_ChangedTitle_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 8; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public string pchTitle; // - } - - //----------------------------------------------------------------------------- - // Purpose: results from a search - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 9)] - public struct HTML_SearchResults_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 9; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public uint unResults; // - public uint unCurrentMatch; // - } - - //----------------------------------------------------------------------------- - // Purpose: page history status changed on the ability to go backwards and forward - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 10)] - public struct HTML_CanGoBackAndForward_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 10; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - [MarshalAs(UnmanagedType.I1)] - public bool bCanGoBack; // - [MarshalAs(UnmanagedType.I1)] - public bool bCanGoForward; // - } - - //----------------------------------------------------------------------------- - // Purpose: details on the visibility and size of the horizontal scrollbar - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 11)] - public struct HTML_HorizontalScroll_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 11; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public uint unScrollMax; // - public uint unScrollCurrent; // - public float flPageScale; // - [MarshalAs(UnmanagedType.I1)] - public bool bVisible; // - public uint unPageSize; // - } - - //----------------------------------------------------------------------------- - // Purpose: details on the visibility and size of the vertical scrollbar - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 12)] - public struct HTML_VerticalScroll_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 12; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public uint unScrollMax; // - public uint unScrollCurrent; // - public float flPageScale; // - [MarshalAs(UnmanagedType.I1)] - public bool bVisible; // - public uint unPageSize; // - } - - //----------------------------------------------------------------------------- - // Purpose: response to GetLinkAtPosition call - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 13)] - public struct HTML_LinkAtPosition_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 13; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public uint x; // NOTE - Not currently set - public uint y; // NOTE - Not currently set - public string pchURL; // - [MarshalAs(UnmanagedType.I1)] - public bool bInput; // - [MarshalAs(UnmanagedType.I1)] - public bool bLiveLink; // - } - - //----------------------------------------------------------------------------- - // Purpose: show a Javascript alert dialog, call JSDialogResponse - // when the user dismisses this dialog (or right away to ignore it) - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 14)] - public struct HTML_JSAlert_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 14; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public string pchMessage; // - } - - //----------------------------------------------------------------------------- - // Purpose: show a Javascript confirmation dialog, call JSDialogResponse - // when the user dismisses this dialog (or right away to ignore it) - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 15)] - public struct HTML_JSConfirm_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 15; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public string pchMessage; // - } - - //----------------------------------------------------------------------------- - // Purpose: when received show a file open dialog - // then call FileLoadDialogResponse with the file(s) the user selected. - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 16)] - public struct HTML_FileOpenDialog_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 16; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public string pchTitle; // - public string pchInitialFile; // - } - - //----------------------------------------------------------------------------- - // Purpose: a new html window is being created. - // - // IMPORTANT NOTE: at this time, the API does not allow you to acknowledge or - // render the contents of this new window, so the new window is always destroyed - // immediately. The URL and other parameters of the new window are passed here - // to give your application the opportunity to call CreateBrowser and set up - // a new browser in response to the attempted popup, if you wish to do so. - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 21)] - public struct HTML_NewWindow_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 21; - public HHTMLBrowser unBrowserHandle; // the handle of the current surface - public string pchURL; // the page to load - public uint unX; // the x pos into the page to display the popup - public uint unY; // the y pos into the page to display the popup - public uint unWide; // the total width of the pBGRA texture - public uint unTall; // the total height of the pBGRA texture - public HHTMLBrowser unNewWindow_BrowserHandle_IGNORE; - } - - //----------------------------------------------------------------------------- - // Purpose: change the cursor to display - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 22)] - public struct HTML_SetCursor_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 22; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public uint eMouseCursor; // the EMouseCursor to display - } - - //----------------------------------------------------------------------------- - // Purpose: informational message from the browser - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 23)] - public struct HTML_StatusText_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 23; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public string pchMsg; // the EMouseCursor to display - } - - //----------------------------------------------------------------------------- - // Purpose: show a tooltip - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 24)] - public struct HTML_ShowToolTip_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 24; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public string pchMsg; // the EMouseCursor to display - } - - //----------------------------------------------------------------------------- - // Purpose: update the text of an existing tooltip - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 25)] - public struct HTML_UpdateToolTip_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 25; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - public string pchMsg; // the EMouseCursor to display - } - - //----------------------------------------------------------------------------- - // Purpose: hide the tooltip you are showing - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 26)] - public struct HTML_HideToolTip_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 26; - public HHTMLBrowser unBrowserHandle; // the handle of the surface - } - - //----------------------------------------------------------------------------- - // Purpose: The browser has restarted due to an internal failure, use this new handle value - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 27)] - public struct HTML_BrowserRestarted_t { - public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 27; - public HHTMLBrowser unBrowserHandle; // this is the new browser handle after the restart - public HHTMLBrowser unOldBrowserHandle; // the handle for the browser before the restart, if your handle was this then switch to using unBrowserHandle for API calls - } - - // callbacks - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTTPCallbacks + 1)] - public struct HTTPRequestCompleted_t { - public const int k_iCallback = Constants.k_iSteamHTTPCallbacks + 1; - - // Handle value for the request that has completed. - public HTTPRequestHandle m_hRequest; - - // Context value that the user defined on the request that this callback is associated with, 0 if - // no context value was set. - public ulong m_ulContextValue; - - // This will be true if we actually got any sort of response from the server (even an error). - // It will be false if we failed due to an internal error or client side network failure. - [MarshalAs(UnmanagedType.I1)] - public bool m_bRequestSuccessful; - - // Will be the HTTP status code value returned by the server, k_EHTTPStatusCode200OK is the normal - // OK response, if you get something else you probably need to treat it as a failure. - public EHTTPStatusCode m_eStatusCode; - - public uint m_unBodySize; // Same as GetHTTPResponseBodySize() - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTTPCallbacks + 2)] - public struct HTTPRequestHeadersReceived_t { - public const int k_iCallback = Constants.k_iSteamHTTPCallbacks + 2; - - // Handle value for the request that has received headers. - public HTTPRequestHandle m_hRequest; - - // Context value that the user defined on the request that this callback is associated with, 0 if - // no context value was set. - public ulong m_ulContextValue; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamHTTPCallbacks + 3)] - public struct HTTPRequestDataReceived_t { - public const int k_iCallback = Constants.k_iSteamHTTPCallbacks + 3; - - // Handle value for the request that has received data. - public HTTPRequestHandle m_hRequest; - - // Context value that the user defined on the request that this callback is associated with, 0 if - // no context value was set. - public ulong m_ulContextValue; - - - // Offset to provide to GetHTTPStreamingResponseBodyData to get this chunk of data - public uint m_cOffset; - - // Size to provide to GetHTTPStreamingResponseBodyData to get this chunk of data - public uint m_cBytesReceived; - } - - //----------------------------------------------------------------------------- - // Purpose: called when a new controller has been connected, will fire once - // per controller if multiple new controllers connect in the same frame - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamControllerCallbacks + 1)] - public struct SteamInputDeviceConnected_t { - public const int k_iCallback = Constants.k_iSteamControllerCallbacks + 1; - public InputHandle_t m_ulConnectedDeviceHandle; // Handle for device - } - - //----------------------------------------------------------------------------- - // Purpose: called when a new controller has been connected, will fire once - // per controller if multiple new controllers connect in the same frame - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamControllerCallbacks + 2)] - public struct SteamInputDeviceDisconnected_t { - public const int k_iCallback = Constants.k_iSteamControllerCallbacks + 2; - public InputHandle_t m_ulDisconnectedDeviceHandle; // Handle for device - } - - //----------------------------------------------------------------------------- - // Purpose: called when a controller configuration has been loaded, will fire once - // per controller per focus change for Steam Input enabled controllers - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamControllerCallbacks + 3)] - public struct SteamInputConfigurationLoaded_t { - public const int k_iCallback = Constants.k_iSteamControllerCallbacks + 3; - public AppId_t m_unAppID; - public InputHandle_t m_ulDeviceHandle; // Handle for device - public CSteamID m_ulMappingCreator; // May differ from local user when using - // an unmodified community or official config - public uint m_unMajorRevision; // Binding revision from In-game Action File. - // Same value as queried by GetDeviceBindingRevision - public uint m_unMinorRevision; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUsesSteamInputAPI; // Does the configuration contain any Analog/Digital actions? - [MarshalAs(UnmanagedType.I1)] - public bool m_bUsesGamepadAPI; // Does the configuration contain any Xinput bindings? - } - - //----------------------------------------------------------------------------- - // Purpose: called when controller gamepad slots change - on Linux/macOS these - // slots are shared for all running apps. - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamControllerCallbacks + 4)] - public struct SteamInputGamepadSlotChange_t { - public const int k_iCallback = Constants.k_iSteamControllerCallbacks + 4; - public AppId_t m_unAppID; - public InputHandle_t m_ulDeviceHandle; // Handle for device - public ESteamInputType m_eDeviceType; // Type of device - public int m_nOldGamepadSlot; // Previous GamepadSlot - can be -1 controller doesn't uses gamepad bindings - public int m_nNewGamepadSlot; // New Gamepad Slot - can be -1 controller doesn't uses gamepad bindings - } - - // SteamInventoryResultReady_t callbacks are fired whenever asynchronous - // results transition from "Pending" to "OK" or an error state. There will - // always be exactly one callback per handle. - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamInventoryCallbacks + 0)] - public struct SteamInventoryResultReady_t { - public const int k_iCallback = Constants.k_iSteamInventoryCallbacks + 0; - public SteamInventoryResult_t m_handle; - public EResult m_result; - } - - // SteamInventoryFullUpdate_t callbacks are triggered when GetAllItems - // successfully returns a result which is newer / fresher than the last - // known result. (It will not trigger if the inventory hasn't changed, - // or if results from two overlapping calls are reversed in flight and - // the earlier result is already known to be stale/out-of-date.) - // The normal ResultReady callback will still be triggered immediately - // afterwards; this is an additional notification for your convenience. - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamInventoryCallbacks + 1)] - public struct SteamInventoryFullUpdate_t { - public const int k_iCallback = Constants.k_iSteamInventoryCallbacks + 1; - public SteamInventoryResult_t m_handle; - } - - // A SteamInventoryDefinitionUpdate_t callback is triggered whenever - // item definitions have been updated, which could be in response to - // LoadItemDefinitions() or any other async request which required - // a definition update in order to process results from the server. - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamInventoryCallbacks + 2)] - public struct SteamInventoryDefinitionUpdate_t { - public const int k_iCallback = Constants.k_iSteamInventoryCallbacks + 2; - } - - // Returned - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamInventoryCallbacks + 3)] - public struct SteamInventoryEligiblePromoItemDefIDs_t { - public const int k_iCallback = Constants.k_iSteamInventoryCallbacks + 3; - public EResult m_result; - public CSteamID m_steamID; - public int m_numEligiblePromoItemDefs; - [MarshalAs(UnmanagedType.I1)] - public bool m_bCachedData; // indicates that the data was retrieved from the cache and not the server - } - - // Triggered from StartPurchase call - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamInventoryCallbacks + 4)] - public struct SteamInventoryStartPurchaseResult_t { - public const int k_iCallback = Constants.k_iSteamInventoryCallbacks + 4; - public EResult m_result; - public ulong m_ulOrderID; - public ulong m_ulTransID; - } - - // Triggered from RequestPrices - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamInventoryCallbacks + 5)] - public struct SteamInventoryRequestPricesResult_t { - public const int k_iCallback = Constants.k_iSteamInventoryCallbacks + 5; - public EResult m_result; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] - private byte[] m_rgchCurrency_; - public string m_rgchCurrency - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchCurrency_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchCurrency_, 4); } - } - } - - //----------------------------------------------------------------------------- - // Callbacks for ISteamMatchmaking (which go through the regular Steam callback registration system) - //----------------------------------------------------------------------------- - // Purpose: a server was added/removed from the favorites list, you should refresh now - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 2)] - public struct FavoritesListChanged_t { - public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 2; - public uint m_nIP; // an IP of 0 means reload the whole list, any other value means just one server - public uint m_nQueryPort; - public uint m_nConnPort; - public uint m_nAppID; - public uint m_nFlags; - [MarshalAs(UnmanagedType.I1)] - public bool m_bAdd; // true if this is adding the entry, otherwise it is a remove - public AccountID_t m_unAccountId; - } - - //----------------------------------------------------------------------------- - // Purpose: Someone has invited you to join a Lobby - // normally you don't need to do anything with this, since - // the Steam UI will also display a '<user> has invited you to the lobby, join?' dialog - // - // if the user outside a game chooses to join, your game will be launched with the parameter "+connect_lobby <64-bit lobby id>", - // or with the callback GameLobbyJoinRequested_t if they're already in-game - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 3)] - public struct LobbyInvite_t { - public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 3; - - public ulong m_ulSteamIDUser; // Steam ID of the person making the invite - public ulong m_ulSteamIDLobby; // Steam ID of the Lobby - public ulong m_ulGameID; // GameID of the Lobby - } - - //----------------------------------------------------------------------------- - // Purpose: Sent on entering a lobby, or on failing to enter - // m_EChatRoomEnterResponse will be set to k_EChatRoomEnterResponseSuccess on success, - // or a higher value on failure (see enum EChatRoomEnterResponse) - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 4)] - public struct LobbyEnter_t { - public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 4; - - public ulong m_ulSteamIDLobby; // SteamID of the Lobby you have entered - public uint m_rgfChatPermissions; // Permissions of the current user - [MarshalAs(UnmanagedType.I1)] - public bool m_bLocked; // If true, then only invited users may join - public uint m_EChatRoomEnterResponse; // EChatRoomEnterResponse - } - - //----------------------------------------------------------------------------- - // Purpose: The lobby metadata has changed - // if m_ulSteamIDMember is the steamID of a lobby member, use GetLobbyMemberData() to access per-user details - // if m_ulSteamIDMember == m_ulSteamIDLobby, use GetLobbyData() to access lobby metadata - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 5)] - public struct LobbyDataUpdate_t { - public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 5; - - public ulong m_ulSteamIDLobby; // steamID of the Lobby - public ulong m_ulSteamIDMember; // steamID of the member whose data changed, or the room itself - public byte m_bSuccess; // true if we lobby data was successfully changed; - // will only be false if RequestLobbyData() was called on a lobby that no longer exists - } - - //----------------------------------------------------------------------------- - // Purpose: The lobby chat room state has changed - // this is usually sent when a user has joined or left the lobby - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 6)] - public struct LobbyChatUpdate_t { - public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 6; - - public ulong m_ulSteamIDLobby; // Lobby ID - public ulong m_ulSteamIDUserChanged; // user who's status in the lobby just changed - can be recipient - public ulong m_ulSteamIDMakingChange; // Chat member who made the change (different from SteamIDUserChange if kicking, muting, etc.) - // for example, if one user kicks another from the lobby, this will be set to the id of the user who initiated the kick - public uint m_rgfChatMemberStateChange; // bitfield of EChatMemberStateChange values - } - - //----------------------------------------------------------------------------- - // Purpose: A chat message for this lobby has been sent - // use GetLobbyChatEntry( m_iChatID ) to retrieve the contents of this message - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 7)] - public struct LobbyChatMsg_t { - public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 7; - - public ulong m_ulSteamIDLobby; // the lobby id this is in - public ulong m_ulSteamIDUser; // steamID of the user who has sent this message - public byte m_eChatEntryType; // type of message - public uint m_iChatID; // index of the chat entry to lookup - } - - //----------------------------------------------------------------------------- - // Purpose: A game created a game for all the members of the lobby to join, - // as triggered by a SetLobbyGameServer() - // it's up to the individual clients to take action on this; the usual - // game behavior is to leave the lobby and connect to the specified game server - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 9)] - public struct LobbyGameCreated_t { - public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 9; - - public ulong m_ulSteamIDLobby; // the lobby we were in - public ulong m_ulSteamIDGameServer; // the new game server that has been created or found for the lobby members - public uint m_unIP; // IP & Port of the game server (if any) - public ushort m_usPort; - } - - //----------------------------------------------------------------------------- - // Purpose: Number of matching lobbies found - // iterate the returned lobbies with GetLobbyByIndex(), from values 0 to m_nLobbiesMatching-1 - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 10)] - public struct LobbyMatchList_t { - public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 10; - public uint m_nLobbiesMatching; // Number of lobbies that matched search criteria and we have SteamIDs for - } - - //----------------------------------------------------------------------------- - // Purpose: posted if a user is forcefully removed from a lobby - // can occur if a user loses connection to Steam - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 12)] - public struct LobbyKicked_t { - public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 12; - public ulong m_ulSteamIDLobby; // Lobby - public ulong m_ulSteamIDAdmin; // User who kicked you - possibly the ID of the lobby itself - public byte m_bKickedDueToDisconnect; // true if you were kicked from the lobby due to the user losing connection to Steam (currently always true) - } - - //----------------------------------------------------------------------------- - // Purpose: Result of our request to create a Lobby - // m_eResult == k_EResultOK on success - // at this point, the lobby has been joined and is ready for use - // a LobbyEnter_t callback will also be received (since the local user is joining their own lobby) - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 13)] - public struct LobbyCreated_t { - public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 13; - - public EResult m_eResult; // k_EResultOK - the lobby was successfully created - // k_EResultNoConnection - your Steam client doesn't have a connection to the back-end - // k_EResultTimeout - you the message to the Steam servers, but it didn't respond - // k_EResultFail - the server responded, but with an unknown internal error - // k_EResultAccessDenied - your game isn't set to allow lobbies, or your client does haven't rights to play the game - // k_EResultLimitExceeded - your game client has created too many lobbies - - public ulong m_ulSteamIDLobby; // chat room, zero if failed - } - - //----------------------------------------------------------------------------- - // Purpose: Result of our request to create a Lobby - // m_eResult == k_EResultOK on success - // at this point, the lobby has been joined and is ready for use - // a LobbyEnter_t callback will also be received (since the local user is joining their own lobby) - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 16)] - public struct FavoritesListAccountsUpdated_t { - public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 16; - - public EResult m_eResult; - } - - //----------------------------------------------------------------------------- - // Callbacks for ISteamGameSearch (which go through the regular Steam callback registration system) - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 1)] - public struct SearchForGameProgressCallback_t { - public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 1; - - public ulong m_ullSearchID; // all future callbacks referencing this search will include this Search ID - - public EResult m_eResult; // if search has started this result will be k_EResultOK, any other value indicates search has failed to start or has terminated - public CSteamID m_lobbyID; // lobby ID if lobby search, invalid steamID otherwise - public CSteamID m_steamIDEndedSearch; // if search was terminated, steamID that terminated search - - public int m_nSecondsRemainingEstimate; - public int m_cPlayersSearching; - } - - // notification to all players searching that a game has been found - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 2)] - public struct SearchForGameResultCallback_t { - public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 2; - - public ulong m_ullSearchID; - - public EResult m_eResult; // if game/host was lost this will be an error value - - // if m_bGameFound is true the following are non-zero - public int m_nCountPlayersInGame; - public int m_nCountAcceptedGame; - // if m_steamIDHost is valid the host has started the game - public CSteamID m_steamIDHost; - [MarshalAs(UnmanagedType.I1)] - public bool m_bFinalCallback; - } - - //----------------------------------------------------------------------------- - // ISteamGameSearch : Game Host API callbacks - // callback from RequestPlayersForGame when the matchmaking service has started or ended search - // callback will also follow a call from CancelRequestPlayersForGame - m_bSearchInProgress will be false - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 11)] - public struct RequestPlayersForGameProgressCallback_t { - public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 11; - - public EResult m_eResult; // m_ullSearchID will be non-zero if this is k_EResultOK - public ulong m_ullSearchID; // all future callbacks referencing this search will include this Search ID - } - - // callback from RequestPlayersForGame - // one of these will be sent per player - // followed by additional callbacks when players accept or decline the game - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 12)] - public struct RequestPlayersForGameResultCallback_t { - public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 12; - - public EResult m_eResult; // m_ullSearchID will be non-zero if this is k_EResultOK - public ulong m_ullSearchID; - - public CSteamID m_SteamIDPlayerFound; // player steamID - public CSteamID m_SteamIDLobby; // if the player is in a lobby, the lobby ID - public PlayerAcceptState_t m_ePlayerAcceptState; - public int m_nPlayerIndex; - public int m_nTotalPlayersFound; // expect this many callbacks at minimum - public int m_nTotalPlayersAcceptedGame; - public int m_nSuggestedTeamIndex; - public ulong m_ullUniqueGameID; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 13)] - public struct RequestPlayersForGameFinalResultCallback_t { - public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 13; - - public EResult m_eResult; - public ulong m_ullSearchID; - public ulong m_ullUniqueGameID; - } - - // this callback confirms that results were received by the matchmaking service for this player - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 14)] - public struct SubmitPlayerResultResultCallback_t { - public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 14; - - public EResult m_eResult; - public ulong ullUniqueGameID; - public CSteamID steamIDPlayer; - } - - // this callback confirms that the game is recorded as complete on the matchmaking service - // the next call to RequestPlayersForGame will generate a new unique game ID - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 15)] - public struct EndGameResultCallback_t { - public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 15; - - public EResult m_eResult; - public ulong ullUniqueGameID; - } - - // Steam has responded to the user request to join a party via the given Beacon ID. - // If successful, the connect string contains game-specific instructions to connect - // to the game with that party. - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamPartiesCallbacks + 1)] - public struct JoinPartyCallback_t { - public const int k_iCallback = Constants.k_iSteamPartiesCallbacks + 1; - - public EResult m_eResult; - public PartyBeaconID_t m_ulBeaconID; - public CSteamID m_SteamIDBeaconOwner; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] - private byte[] m_rgchConnectString_; - public string m_rgchConnectString - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchConnectString_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchConnectString_, 256); } - } - } - - // Response to CreateBeacon request. If successful, the beacon ID is provided. - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamPartiesCallbacks + 2)] - public struct CreateBeaconCallback_t { - public const int k_iCallback = Constants.k_iSteamPartiesCallbacks + 2; - - public EResult m_eResult; - public PartyBeaconID_t m_ulBeaconID; - } - - // Someone has used the beacon to join your party - they are in-flight now - // and we've reserved one of the open slots for them. - // You should confirm when they join your party by calling OnReservationCompleted(). - // Otherwise, Steam may timeout their reservation eventually. - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamPartiesCallbacks + 3)] - public struct ReservationNotificationCallback_t { - public const int k_iCallback = Constants.k_iSteamPartiesCallbacks + 3; - - public PartyBeaconID_t m_ulBeaconID; - public CSteamID m_steamIDJoiner; - } - - // Response to ChangeNumOpenSlots call - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamPartiesCallbacks + 4)] - public struct ChangeNumOpenSlotsCallback_t { - public const int k_iCallback = Constants.k_iSteamPartiesCallbacks + 4; - - public EResult m_eResult; - } - - // The list of possible Party beacon locations has changed - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamPartiesCallbacks + 5)] - public struct AvailableBeaconLocationsUpdated_t { - public const int k_iCallback = Constants.k_iSteamPartiesCallbacks + 5; - } - - // The list of active beacons may have changed - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamPartiesCallbacks + 6)] - public struct ActiveBeaconsUpdated_t { - public const int k_iCallback = Constants.k_iSteamPartiesCallbacks + 6; - } - - // callbacks - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamMusicCallbacks + 1)] - public struct PlaybackStatusHasChanged_t { - public const int k_iCallback = Constants.k_iSteamMusicCallbacks + 1; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMusicCallbacks + 2)] - public struct VolumeHasChanged_t { - public const int k_iCallback = Constants.k_iSteamMusicCallbacks + 2; - public float m_flNewVolume; - } - - // callbacks - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 1)] - public struct MusicPlayerRemoteWillActivate_t { - public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 1; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 2)] - public struct MusicPlayerRemoteWillDeactivate_t { - public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 2; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 3)] - public struct MusicPlayerRemoteToFront_t { - public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 3; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 4)] - public struct MusicPlayerWillQuit_t { - public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 4; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 5)] - public struct MusicPlayerWantsPlay_t { - public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 5; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 6)] - public struct MusicPlayerWantsPause_t { - public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 6; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 7)] - public struct MusicPlayerWantsPlayPrevious_t { - public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 7; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 8)] - public struct MusicPlayerWantsPlayNext_t { - public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 8; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 9)] - public struct MusicPlayerWantsShuffled_t { - public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 9; - [MarshalAs(UnmanagedType.I1)] - public bool m_bShuffled; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 10)] - public struct MusicPlayerWantsLooped_t { - public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 10; - [MarshalAs(UnmanagedType.I1)] - public bool m_bLooped; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMusicCallbacks + 11)] - public struct MusicPlayerWantsVolume_t { - public const int k_iCallback = Constants.k_iSteamMusicCallbacks + 11; - public float m_flNewVolume; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMusicCallbacks + 12)] - public struct MusicPlayerSelectsQueueEntry_t { - public const int k_iCallback = Constants.k_iSteamMusicCallbacks + 12; - public int nID; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMusicCallbacks + 13)] - public struct MusicPlayerSelectsPlaylistEntry_t { - public const int k_iCallback = Constants.k_iSteamMusicCallbacks + 13; - public int nID; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 14)] - public struct MusicPlayerWantsPlayingRepeatStatus_t { - public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 14; - public int m_nPlayingRepeatStatus; - } - - // callbacks - // callback notification - a user wants to talk to us over the P2P channel via the SendP2PPacket() API - // in response, a call to AcceptP2PPacketsFromUser() needs to be made, if you want to talk with them - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamNetworkingCallbacks + 2)] - public struct P2PSessionRequest_t { - public const int k_iCallback = Constants.k_iSteamNetworkingCallbacks + 2; - public CSteamID m_steamIDRemote; // user who wants to talk to us - } - - // callback notification - packets can't get through to the specified user via the SendP2PPacket() API - // all packets queued packets unsent at this point will be dropped - // further attempts to send will retry making the connection (but will be dropped if we fail again) - [StructLayout(LayoutKind.Sequential, Pack = 1)] - [CallbackIdentity(Constants.k_iSteamNetworkingCallbacks + 3)] - public struct P2PSessionConnectFail_t { - public const int k_iCallback = Constants.k_iSteamNetworkingCallbacks + 3; - public CSteamID m_steamIDRemote; // user we were sending packets to - public byte m_eP2PSessionError; // EP2PSessionError indicating why we're having trouble - } - - // callback notification - status of a socket has changed - // used as part of the CreateListenSocket() / CreateP2PConnectionSocket() - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamNetworkingCallbacks + 1)] - public struct SocketStatusCallback_t { - public const int k_iCallback = Constants.k_iSteamNetworkingCallbacks + 1; - public SNetSocket_t m_hSocket; // the socket used to send/receive data to the remote host - public SNetListenSocket_t m_hListenSocket; // this is the server socket that we were listening on; NULL if this was an outgoing connection - public CSteamID m_steamIDRemote; // remote steamID we have connected to, if it has one - public int m_eSNetSocketState; // socket state, ESNetSocketState - } - - // - // Callbacks - // - /// Posted when a remote host is sending us a message, and we do not already have a session with them - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamNetworkingMessagesCallbacks + 1)] - public struct SteamNetworkingMessagesSessionRequest_t { - public const int k_iCallback = Constants.k_iSteamNetworkingMessagesCallbacks + 1; - public SteamNetworkingIdentity m_identityRemote; // user who wants to talk to us - } - - /// Posted when we fail to establish a connection, or we detect that communications - /// have been disrupted it an unusual way. There is no notification when a peer proactively - /// closes the session. ("Closed by peer" is not a concept of UDP-style communications, and - /// SteamNetworkingMessages is primarily intended to make porting UDP code easy.) - /// - /// Remember: callbacks are asynchronous. See notes on SendMessageToUser, - /// and k_nSteamNetworkingSend_AutoRestartBrokenSession in particular. - /// - /// Also, if a session times out due to inactivity, no callbacks will be posted. The only - /// way to detect that this is happening is that querying the session state may return - /// none, connecting, and findingroute again. - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamNetworkingMessagesCallbacks + 2)] - public struct SteamNetworkingMessagesSessionFailed_t { - public const int k_iCallback = Constants.k_iSteamNetworkingMessagesCallbacks + 2; - - /// Detailed info about the session that failed. - /// SteamNetConnectionInfo_t::m_identityRemote indicates who this session - /// was with. - public SteamNetConnectionInfo_t m_info; - } - - /// Callback struct used to notify when a connection has changed state - /// This callback is posted whenever a connection is created, destroyed, or changes state. - /// The m_info field will contain a complete description of the connection at the time the - /// change occurred and the callback was posted. In particular, m_eState will have the - /// new connection state. - /// - /// You will usually need to listen for this callback to know when: - /// - A new connection arrives on a listen socket. - /// m_info.m_hListenSocket will be set, m_eOldState = k_ESteamNetworkingConnectionState_None, - /// and m_info.m_eState = k_ESteamNetworkingConnectionState_Connecting. - /// See ISteamNetworkigSockets::AcceptConnection. - /// - A connection you initiated has been accepted by the remote host. - /// m_eOldState = k_ESteamNetworkingConnectionState_Connecting, and - /// m_info.m_eState = k_ESteamNetworkingConnectionState_Connected. - /// Some connections might transition to k_ESteamNetworkingConnectionState_FindingRoute first. - /// - A connection has been actively rejected or closed by the remote host. - /// m_eOldState = k_ESteamNetworkingConnectionState_Connecting or k_ESteamNetworkingConnectionState_Connected, - /// and m_info.m_eState = k_ESteamNetworkingConnectionState_ClosedByPeer. m_info.m_eEndReason - /// and m_info.m_szEndDebug will have for more details. - /// NOTE: upon receiving this callback, you must still destroy the connection using - /// ISteamNetworkingSockets::CloseConnection to free up local resources. (The details - /// passed to the function are not used in this case, since the connection is already closed.) - /// - A problem was detected with the connection, and it has been closed by the local host. - /// The most common failure is timeout, but other configuration or authentication failures - /// can cause this. m_eOldState = k_ESteamNetworkingConnectionState_Connecting or - /// k_ESteamNetworkingConnectionState_Connected, and m_info.m_eState = k_ESteamNetworkingConnectionState_ProblemDetectedLocally. - /// m_info.m_eEndReason and m_info.m_szEndDebug will have for more details. - /// NOTE: upon receiving this callback, you must still destroy the connection using - /// ISteamNetworkingSockets::CloseConnection to free up local resources. (The details - /// passed to the function are not used in this case, since the connection is already closed.) - /// - /// Remember that callbacks are posted to a queue, and networking connections can - /// change at any time. It is possible that the connection has already changed - /// state by the time you process this callback. - /// - /// Also note that callbacks will be posted when connections are created and destroyed by your own API calls. - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamNetworkingSocketsCallbacks + 1)] - public struct SteamNetConnectionStatusChangedCallback_t { - public const int k_iCallback = Constants.k_iSteamNetworkingSocketsCallbacks + 1; - - /// Connection handle - public HSteamNetConnection m_hConn; - - /// Full connection info - public SteamNetConnectionInfo_t m_info; - - /// Previous state. (Current state is in m_info.m_eState) - public ESteamNetworkingConnectionState m_eOldState; - } - - /// A struct used to describe our readiness to participate in authenticated, - /// encrypted communication. In order to do this we need: - /// - /// - The list of trusted CA certificates that might be relevant for this - /// app. - /// - A valid certificate issued by a CA. - /// - /// This callback is posted whenever the state of our readiness changes. - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamNetworkingSocketsCallbacks + 2)] - public struct SteamNetAuthenticationStatus_t { - public const int k_iCallback = Constants.k_iSteamNetworkingSocketsCallbacks + 2; - - /// Status - public ESteamNetworkingAvailability m_eAvail; - - /// Non-localized English language status. For diagnostic/debugging - /// purposes only. - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] - private byte[] m_debugMsg_; - public string m_debugMsg - { - get { return InteropHelp.ByteArrayToStringUTF8(m_debugMsg_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_debugMsg_, 256); } - } - } - - /// A struct used to describe our readiness to use the relay network. - /// To do this we first need to fetch the network configuration, - /// which describes what POPs are available. - [CallbackIdentity(Constants.k_iSteamNetworkingUtilsCallbacks + 1)] - public struct SteamRelayNetworkStatus_t { - public const int k_iCallback = Constants.k_iSteamNetworkingUtilsCallbacks + 1; - - /// Summary status. When this is "current", initialization has - /// completed. Anything else means you are not ready yet, or - /// there is a significant problem. - public ESteamNetworkingAvailability m_eAvail; - - /// Nonzero if latency measurement is in progress (or pending, - /// awaiting a prerequisite). - public int m_bPingMeasurementInProgress; - - /// Status obtaining the network config. This is a prerequisite - /// for relay network access. - /// - /// Failure to obtain the network config almost always indicates - /// a problem with the local internet connection. - public ESteamNetworkingAvailability m_eAvailNetworkConfig; - - /// Current ability to communicate with ANY relay. Note that - /// the complete failure to communicate with any relays almost - /// always indicates a problem with the local Internet connection. - /// (However, just because you can reach a single relay doesn't - /// mean that the local connection is in perfect health.) - public ESteamNetworkingAvailability m_eAvailAnyRelay; - - /// Non-localized English language status. For diagnostic/debugging - /// purposes only. - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] - private byte[] m_debugMsg_; - public string m_debugMsg - { - get { return InteropHelp.ByteArrayToStringUTF8(m_debugMsg_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_debugMsg_, 256); } - } - } - - //----------------------------------------------------------------------------- - // Purpose: Callback for querying UGC - //----------------------------------------------------------------------------- - [CallbackIdentity(Constants.k_ISteamParentalSettingsCallbacks + 1)] - public struct SteamParentalSettingsChanged_t { - public const int k_iCallback = Constants.k_ISteamParentalSettingsCallbacks + 1; - } - - // callbacks - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemotePlayCallbacks + 1)] - public struct SteamRemotePlaySessionConnected_t { - public const int k_iCallback = Constants.k_iSteamRemotePlayCallbacks + 1; - public RemotePlaySessionID_t m_unSessionID; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemotePlayCallbacks + 2)] - public struct SteamRemotePlaySessionDisconnected_t { - public const int k_iCallback = Constants.k_iSteamRemotePlayCallbacks + 2; - public RemotePlaySessionID_t m_unSessionID; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemotePlayCallbacks + 3)] - public struct SteamRemotePlayTogetherGuestInvite_t { - public const int k_iCallback = Constants.k_iSteamRemotePlayCallbacks + 3; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1024)] - private byte[] m_szConnectURL_; - public string m_szConnectURL - { - get { return InteropHelp.ByteArrayToStringUTF8(m_szConnectURL_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_szConnectURL_, 1024); } - } - } - - // callbacks - //----------------------------------------------------------------------------- - // Purpose: The result of a call to FileShare() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 7)] - public struct RemoteStorageFileShareResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 7; - public EResult m_eResult; // The result of the operation - public UGCHandle_t m_hFile; // The handle that can be shared with users and features - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchFilenameMax)] - private byte[] m_rgchFilename_; - public string m_rgchFilename // The name of the file that was shared - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchFilename_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchFilename_, Constants.k_cchFilenameMax); } - } - } - - // k_iSteamRemoteStorageCallbacks + 8 is deprecated! Do not reuse - //----------------------------------------------------------------------------- - // Purpose: The result of a call to PublishFile() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 9)] - public struct RemoteStoragePublishFileResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 9; - public EResult m_eResult; // The result of the operation. - public PublishedFileId_t m_nPublishedFileId; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; - } - - // k_iSteamRemoteStorageCallbacks + 10 is deprecated! Do not reuse - //----------------------------------------------------------------------------- - // Purpose: The result of a call to DeletePublishedFile() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 11)] - public struct RemoteStorageDeletePublishedFileResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 11; - public EResult m_eResult; // The result of the operation. - public PublishedFileId_t m_nPublishedFileId; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to EnumerateUserPublishedFiles() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 12)] - public struct RemoteStorageEnumerateUserPublishedFilesResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 12; - public EResult m_eResult; // The result of the operation. - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)] - public PublishedFileId_t[] m_rgPublishedFileId; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to SubscribePublishedFile() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 13)] - public struct RemoteStorageSubscribePublishedFileResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 13; - public EResult m_eResult; // The result of the operation. - public PublishedFileId_t m_nPublishedFileId; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to EnumerateSubscribePublishedFiles() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 14)] - public struct RemoteStorageEnumerateUserSubscribedFilesResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 14; - public EResult m_eResult; // The result of the operation. - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)] - public PublishedFileId_t[] m_rgPublishedFileId; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)] - public uint[] m_rgRTimeSubscribed; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to UnsubscribePublishedFile() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 15)] - public struct RemoteStorageUnsubscribePublishedFileResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 15; - public EResult m_eResult; // The result of the operation. - public PublishedFileId_t m_nPublishedFileId; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to CommitPublishedFileUpdate() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 16)] - public struct RemoteStorageUpdatePublishedFileResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 16; - public EResult m_eResult; // The result of the operation. - public PublishedFileId_t m_nPublishedFileId; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to UGCDownload() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 17)] - public struct RemoteStorageDownloadUGCResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 17; - public EResult m_eResult; // The result of the operation. - public UGCHandle_t m_hFile; // The handle to the file that was attempted to be downloaded. - public AppId_t m_nAppID; // ID of the app that created this file. - public int m_nSizeInBytes; // The size of the file that was downloaded, in bytes. - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchFilenameMax)] - private byte[] m_pchFileName_; - public string m_pchFileName // The name of the file that was downloaded. - { - get { return InteropHelp.ByteArrayToStringUTF8(m_pchFileName_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_pchFileName_, Constants.k_cchFilenameMax); } - } - public ulong m_ulSteamIDOwner; // Steam ID of the user who created this content. - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to GetPublishedFileDetails() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 18)] - public struct RemoteStorageGetPublishedFileDetailsResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 18; - public EResult m_eResult; // The result of the operation. - public PublishedFileId_t m_nPublishedFileId; - public AppId_t m_nCreatorAppID; // ID of the app that created this file. - public AppId_t m_nConsumerAppID; // ID of the app that will consume this file. - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchPublishedDocumentTitleMax)] - private byte[] m_rgchTitle_; - public string m_rgchTitle // title of document - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchTitle_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchTitle_, Constants.k_cchPublishedDocumentTitleMax); } - } - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchPublishedDocumentDescriptionMax)] - private byte[] m_rgchDescription_; - public string m_rgchDescription // description of document - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchDescription_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchDescription_, Constants.k_cchPublishedDocumentDescriptionMax); } - } - public UGCHandle_t m_hFile; // The handle of the primary file - public UGCHandle_t m_hPreviewFile; // The handle of the preview file - public ulong m_ulSteamIDOwner; // Steam ID of the user who created this content. - public uint m_rtimeCreated; // time when the published file was created - public uint m_rtimeUpdated; // time when the published file was last updated - public ERemoteStoragePublishedFileVisibility m_eVisibility; - [MarshalAs(UnmanagedType.I1)] - public bool m_bBanned; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchTagListMax)] - private byte[] m_rgchTags_; - public string m_rgchTags // comma separated list of all tags associated with this file - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchTags_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchTags_, Constants.k_cchTagListMax); } - } - [MarshalAs(UnmanagedType.I1)] - public bool m_bTagsTruncated; // whether the list of tags was too long to be returned in the provided buffer - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchFilenameMax)] - private byte[] m_pchFileName_; - public string m_pchFileName // The name of the primary file - { - get { return InteropHelp.ByteArrayToStringUTF8(m_pchFileName_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_pchFileName_, Constants.k_cchFilenameMax); } - } - public int m_nFileSize; // Size of the primary file - public int m_nPreviewFileSize; // Size of the preview file - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchPublishedFileURLMax)] - private byte[] m_rgchURL_; - public string m_rgchURL // URL (for a video or a website) - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchURL_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchURL_, Constants.k_cchPublishedFileURLMax); } - } - public EWorkshopFileType m_eFileType; // Type of the file - [MarshalAs(UnmanagedType.I1)] - public bool m_bAcceptedForUse; // developer has specifically flagged this item as accepted in the Workshop - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 19)] - public struct RemoteStorageEnumerateWorkshopFilesResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 19; - public EResult m_eResult; - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)] - public PublishedFileId_t[] m_rgPublishedFileId; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)] - public float[] m_rgScore; - public AppId_t m_nAppId; - public uint m_unStartIndex; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of GetPublishedItemVoteDetails - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 20)] - public struct RemoteStorageGetPublishedItemVoteDetailsResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 20; - public EResult m_eResult; - public PublishedFileId_t m_unPublishedFileId; - public int m_nVotesFor; - public int m_nVotesAgainst; - public int m_nReports; - public float m_fScore; - } - - //----------------------------------------------------------------------------- - // Purpose: User subscribed to a file for the app (from within the app or on the web) - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 21)] - public struct RemoteStoragePublishedFileSubscribed_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 21; - public PublishedFileId_t m_nPublishedFileId; // The published file id - public AppId_t m_nAppID; // ID of the app that will consume this file. - } - - //----------------------------------------------------------------------------- - // Purpose: User unsubscribed from a file for the app (from within the app or on the web) - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 22)] - public struct RemoteStoragePublishedFileUnsubscribed_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 22; - public PublishedFileId_t m_nPublishedFileId; // The published file id - public AppId_t m_nAppID; // ID of the app that will consume this file. - } - - //----------------------------------------------------------------------------- - // Purpose: Published file that a user owns was deleted (from within the app or the web) - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 23)] - public struct RemoteStoragePublishedFileDeleted_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 23; - public PublishedFileId_t m_nPublishedFileId; // The published file id - public AppId_t m_nAppID; // ID of the app that will consume this file. - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to UpdateUserPublishedItemVote() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 24)] - public struct RemoteStorageUpdateUserPublishedItemVoteResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 24; - public EResult m_eResult; // The result of the operation. - public PublishedFileId_t m_nPublishedFileId; // The published file id - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to GetUserPublishedItemVoteDetails() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 25)] - public struct RemoteStorageUserVoteDetails_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 25; - public EResult m_eResult; // The result of the operation. - public PublishedFileId_t m_nPublishedFileId; // The published file id - public EWorkshopVote m_eVote; // what the user voted - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 26)] - public struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 26; - public EResult m_eResult; // The result of the operation. - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)] - public PublishedFileId_t[] m_rgPublishedFileId; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 27)] - public struct RemoteStorageSetUserPublishedFileActionResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 27; - public EResult m_eResult; // The result of the operation. - public PublishedFileId_t m_nPublishedFileId; // The published file id - public EWorkshopFileAction m_eAction; // the action that was attempted - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 28)] - public struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 28; - public EResult m_eResult; // The result of the operation. - public EWorkshopFileAction m_eAction; // the action that was filtered on - public int m_nResultsReturned; - public int m_nTotalResultCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)] - public PublishedFileId_t[] m_rgPublishedFileId; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)] - public uint[] m_rgRTimeUpdated; - } - - //----------------------------------------------------------------------------- - // Purpose: Called periodically while a PublishWorkshopFile is in progress - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 29)] - public struct RemoteStoragePublishFileProgress_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 29; - public double m_dPercentFile; - [MarshalAs(UnmanagedType.I1)] - public bool m_bPreview; - } - - //----------------------------------------------------------------------------- - // Purpose: Called when the content for a published file is updated - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 30)] - public struct RemoteStoragePublishedFileUpdated_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 30; - public PublishedFileId_t m_nPublishedFileId; // The published file id - public AppId_t m_nAppID; // ID of the app that will consume this file. - public ulong m_ulUnused; // not used anymore - } - - //----------------------------------------------------------------------------- - // Purpose: Called when a FileWriteAsync completes - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 31)] - public struct RemoteStorageFileWriteAsyncComplete_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 31; - public EResult m_eResult; // result - } - - //----------------------------------------------------------------------------- - // Purpose: Called when a FileReadAsync completes - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 32)] - public struct RemoteStorageFileReadAsyncComplete_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 32; - public SteamAPICall_t m_hFileReadAsync; // call handle of the async read which was made - public EResult m_eResult; // result - public uint m_nOffset; // offset in the file this read was at - public uint m_cubRead; // amount read - will the <= the amount requested - } - - //----------------------------------------------------------------------------- - // Purpose: one or more files for this app have changed locally after syncing - // to remote session changes - // Note: only posted if this happens DURING the local app session - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamRemoteStorageCallbacks + 33)] - public struct RemoteStorageLocalFileChange_t { - public const int k_iCallback = Constants.k_iSteamRemoteStorageCallbacks + 33; - } - - // callbacks - //----------------------------------------------------------------------------- - // Purpose: Screenshot successfully written or otherwise added to the library - // and can now be tagged - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamScreenshotsCallbacks + 1)] - public struct ScreenshotReady_t { - public const int k_iCallback = Constants.k_iSteamScreenshotsCallbacks + 1; - public ScreenshotHandle m_hLocal; - public EResult m_eResult; - } - - //----------------------------------------------------------------------------- - // Purpose: Screenshot has been requested by the user. Only sent if - // HookScreenshots() has been called, in which case Steam will not take - // the screenshot itself. - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamScreenshotsCallbacks + 2)] - public struct ScreenshotRequested_t { - public const int k_iCallback = Constants.k_iSteamScreenshotsCallbacks + 2; - } - - //----------------------------------------------------------------------------- - // Purpose: Callback for querying UGC - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 1)] - public struct SteamUGCQueryCompleted_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 1; - public UGCQueryHandle_t m_handle; - public EResult m_eResult; - public uint m_unNumResultsReturned; - public uint m_unTotalMatchingResults; - [MarshalAs(UnmanagedType.I1)] - public bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchPublishedFileURLMax)] - private byte[] m_rgchNextCursor_; - public string m_rgchNextCursor // If a paging cursor was used, then this will be the next cursor to get the next result set. - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchNextCursor_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchNextCursor_, Constants.k_cchPublishedFileURLMax); } - } - } - - //----------------------------------------------------------------------------- - // Purpose: Callback for requesting details on one piece of UGC - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 2)] - public struct SteamUGCRequestUGCDetailsResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 2; - public SteamUGCDetails_t m_details; - [MarshalAs(UnmanagedType.I1)] - public bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache - } - - //----------------------------------------------------------------------------- - // Purpose: result for ISteamUGC::CreateItem() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 3)] - public struct CreateItemResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 3; - public EResult m_eResult; - public PublishedFileId_t m_nPublishedFileId; // new item got this UGC PublishFileID - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; - } - - //----------------------------------------------------------------------------- - // Purpose: result for ISteamUGC::SubmitItemUpdate() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 4)] - public struct SubmitItemUpdateResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 4; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bUserNeedsToAcceptWorkshopLegalAgreement; - public PublishedFileId_t m_nPublishedFileId; - } - - //----------------------------------------------------------------------------- - // Purpose: a Workshop item has been installed or updated - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 5)] - public struct ItemInstalled_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 5; - public AppId_t m_unAppID; - public PublishedFileId_t m_nPublishedFileId; - } - - //----------------------------------------------------------------------------- - // Purpose: result of DownloadItem(), existing item files can be accessed again - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 6)] - public struct DownloadItemResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 6; - public AppId_t m_unAppID; - public PublishedFileId_t m_nPublishedFileId; - public EResult m_eResult; - } - - //----------------------------------------------------------------------------- - // Purpose: result of AddItemToFavorites() or RemoveItemFromFavorites() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 7)] - public struct UserFavoriteItemsListChanged_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 7; - public PublishedFileId_t m_nPublishedFileId; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bWasAddRequest; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to SetUserItemVote() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 8)] - public struct SetUserItemVoteResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 8; - public PublishedFileId_t m_nPublishedFileId; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVoteUp; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to GetUserItemVote() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 9)] - public struct GetUserItemVoteResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 9; - public PublishedFileId_t m_nPublishedFileId; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVotedUp; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVotedDown; - [MarshalAs(UnmanagedType.I1)] - public bool m_bVoteSkipped; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to StartPlaytimeTracking() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 10)] - public struct StartPlaytimeTrackingResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 10; - public EResult m_eResult; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to StopPlaytimeTracking() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 11)] - public struct StopPlaytimeTrackingResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 11; - public EResult m_eResult; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to AddDependency - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 12)] - public struct AddUGCDependencyResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 12; - public EResult m_eResult; - public PublishedFileId_t m_nPublishedFileId; - public PublishedFileId_t m_nChildPublishedFileId; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to RemoveDependency - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 13)] - public struct RemoveUGCDependencyResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 13; - public EResult m_eResult; - public PublishedFileId_t m_nPublishedFileId; - public PublishedFileId_t m_nChildPublishedFileId; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to AddAppDependency - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 14)] - public struct AddAppDependencyResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 14; - public EResult m_eResult; - public PublishedFileId_t m_nPublishedFileId; - public AppId_t m_nAppID; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to RemoveAppDependency - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 15)] - public struct RemoveAppDependencyResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 15; - public EResult m_eResult; - public PublishedFileId_t m_nPublishedFileId; - public AppId_t m_nAppID; - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to GetAppDependencies. Callback may be called - // multiple times until all app dependencies have been returned. - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 16)] - public struct GetAppDependenciesResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 16; - public EResult m_eResult; - public PublishedFileId_t m_nPublishedFileId; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] - public AppId_t[] m_rgAppIDs; - public uint m_nNumAppDependencies; // number returned in this struct - public uint m_nTotalNumAppDependencies; // total found - } - - //----------------------------------------------------------------------------- - // Purpose: The result of a call to DeleteItem - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 17)] - public struct DeleteItemResult_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 17; - public EResult m_eResult; - public PublishedFileId_t m_nPublishedFileId; - } - - //----------------------------------------------------------------------------- - // Purpose: signal that the list of subscribed items changed - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 18)] - public struct UserSubscribedItemsListChanged_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 18; - public AppId_t m_nAppID; - } - - //----------------------------------------------------------------------------- - // Purpose: Status of the user's acceptable/rejection of the app's specific Workshop EULA - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUGCCallbacks + 20)] - public struct WorkshopEULAStatus_t { - public const int k_iCallback = Constants.k_iSteamUGCCallbacks + 20; - public EResult m_eResult; - public AppId_t m_nAppID; - public uint m_unVersion; - public RTime32 m_rtAction; - [MarshalAs(UnmanagedType.I1)] - public bool m_bAccepted; - [MarshalAs(UnmanagedType.I1)] - public bool m_bNeedsAction; - } - - // callbacks - //----------------------------------------------------------------------------- - // Purpose: Called when an authenticated connection to the Steam back-end has been established. - // This means the Steam client now has a working connection to the Steam servers. - // Usually this will have occurred before the game has launched, and should - // only be seen if the user has dropped connection due to a networking issue - // or a Steam server update. - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 1)] - public struct SteamServersConnected_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 1; - } - - //----------------------------------------------------------------------------- - // Purpose: called when a connection attempt has failed - // this will occur periodically if the Steam client is not connected, - // and has failed in it's retry to establish a connection - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 2)] - public struct SteamServerConnectFailure_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 2; - public EResult m_eResult; - [MarshalAs(UnmanagedType.I1)] - public bool m_bStillRetrying; - } - - //----------------------------------------------------------------------------- - // Purpose: called if the client has lost connection to the Steam servers - // real-time services will be disabled until a matching SteamServersConnected_t has been posted - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 3)] - public struct SteamServersDisconnected_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 3; - public EResult m_eResult; - } - - //----------------------------------------------------------------------------- - // Purpose: Sent by the Steam server to the client telling it to disconnect from the specified game server, - // which it may be in the process of or already connected to. - // The game client should immediately disconnect upon receiving this message. - // This can usually occur if the user doesn't have rights to play on the game server. - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 13)] - public struct ClientGameServerDeny_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 13; - - public uint m_uAppID; - public uint m_unGameServerIP; - public ushort m_usGameServerPort; - public ushort m_bSecure; - public uint m_uReason; - } - - //----------------------------------------------------------------------------- - // Purpose: called when the callback system for this client is in an error state (and has flushed pending callbacks) - // When getting this message the client should disconnect from Steam, reset any stored Steam state and reconnect. - // This usually occurs in the rare event the Steam client has some kind of fatal error. - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 17)] - public struct IPCFailure_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 17; - public byte m_eFailureType; - } - - //----------------------------------------------------------------------------- - // Purpose: Signaled whenever licenses change - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 25)] - public struct LicensesUpdated_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 25; - } - - //----------------------------------------------------------------------------- - // callback for BeginAuthSession - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = 4)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 43)] - public struct ValidateAuthTicketResponse_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 43; - public CSteamID m_SteamID; - public EAuthSessionResponse m_eAuthSessionResponse; - public CSteamID m_OwnerSteamID; // different from m_SteamID if borrowed - } - - //----------------------------------------------------------------------------- - // Purpose: called when a user has responded to a microtransaction authorization request - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 52)] - public struct MicroTxnAuthorizationResponse_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 52; - - public uint m_unAppID; // AppID for this microtransaction - public ulong m_ulOrderID; // OrderID provided for the microtransaction - public byte m_bAuthorized; // if user authorized transaction - } - - //----------------------------------------------------------------------------- - // Purpose: Result from RequestEncryptedAppTicket - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 54)] - public struct EncryptedAppTicketResponse_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 54; - - public EResult m_eResult; - } - - //----------------------------------------------------------------------------- - // callback for GetAuthSessionTicket - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 63)] - public struct GetAuthSessionTicketResponse_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 63; - public HAuthTicket m_hAuthTicket; - public EResult m_eResult; - } - - //----------------------------------------------------------------------------- - // Purpose: sent to your game in response to a steam://gamewebcallback/ command - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 64)] - public struct GameWebCallback_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 64; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] - private byte[] m_szURL_; - public string m_szURL - { - get { return InteropHelp.ByteArrayToStringUTF8(m_szURL_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_szURL_, 256); } - } - } - - //----------------------------------------------------------------------------- - // Purpose: sent to your game in response to ISteamUser::RequestStoreAuthURL - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 65)] - public struct StoreAuthURLResponse_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 65; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 512)] - private byte[] m_szURL_; - public string m_szURL - { - get { return InteropHelp.ByteArrayToStringUTF8(m_szURL_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_szURL_, 512); } - } - } - - //----------------------------------------------------------------------------- - // Purpose: sent in response to ISteamUser::GetMarketEligibility - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 66)] - public struct MarketEligibilityResponse_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 66; - [MarshalAs(UnmanagedType.I1)] - public bool m_bAllowed; - public EMarketNotAllowedReasonFlags m_eNotAllowedReason; - public RTime32 m_rtAllowedAtTime; - - public int m_cdaySteamGuardRequiredDays; // The number of days any user is required to have had Steam Guard before they can use the market - public int m_cdayNewDeviceCooldown; // The number of days after initial device authorization a user must wait before using the market on that device - } - - //----------------------------------------------------------------------------- - // Purpose: sent for games with enabled anti indulgence / duration control, for - // enabled users. Lets the game know whether the user can keep playing or - // whether the game should exit, and returns info about remaining gameplay time. - // - // This callback is fired asynchronously in response to timers triggering. - // It is also fired in response to calls to GetDurationControl(). - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 67)] - public struct DurationControl_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 67; - - public EResult m_eResult; // result of call (always k_EResultOK for asynchronous timer-based notifications) - public AppId_t m_appid; // appid generating playtime - - [MarshalAs(UnmanagedType.I1)] - public bool m_bApplicable; // is duration control applicable to user + game combination - public int m_csecsLast5h; // playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds - - public EDurationControlProgress m_progress; // recommended progress (either everything is fine, or please exit game) - public EDurationControlNotification m_notification; // notification to show, if any (always k_EDurationControlNotification_None for API calls) - - public int m_csecsToday; // playtime on current calendar day - public int m_csecsRemaining; // playtime remaining until the user hits a regulatory limit - } - - //----------------------------------------------------------------------------- - // callback for GetTicketForWebApi - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserCallbacks + 68)] - public struct GetTicketForWebApiResponse_t { - public const int k_iCallback = Constants.k_iSteamUserCallbacks + 68; - public HAuthTicket m_hAuthTicket; - public EResult m_eResult; - public int m_cubTicket; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_nCubTicketMaxLength)] - public byte[] m_rgubTicket; - } - - // callbacks - //----------------------------------------------------------------------------- - // Purpose: called when the latests stats and achievements have been received - // from the server - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Explicit, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 1)] - public struct UserStatsReceived_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 1; - [FieldOffset(0)] - public ulong m_nGameID; // Game these stats are for - [FieldOffset(8)] - public EResult m_eResult; // Success / error fetching the stats - [FieldOffset(12)] - public CSteamID m_steamIDUser; // The user for whom the stats are retrieved for - } - - //----------------------------------------------------------------------------- - // Purpose: result of a request to store the user stats for a game - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 2)] - public struct UserStatsStored_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 2; - public ulong m_nGameID; // Game these stats are for - public EResult m_eResult; // success / error - } - - //----------------------------------------------------------------------------- - // Purpose: result of a request to store the achievements for a game, or an - // "indicate progress" call. If both m_nCurProgress and m_nMaxProgress - // are zero, that means the achievement has been fully unlocked. - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 3)] - public struct UserAchievementStored_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 3; - - public ulong m_nGameID; // Game this is for - [MarshalAs(UnmanagedType.I1)] - public bool m_bGroupAchievement; // if this is a "group" achievement - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchStatNameMax)] - private byte[] m_rgchAchievementName_; - public string m_rgchAchievementName // name of the achievement - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchAchievementName_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchAchievementName_, Constants.k_cchStatNameMax); } - } - public uint m_nCurProgress; // current progress towards the achievement - public uint m_nMaxProgress; // "out of" this many - } - - //----------------------------------------------------------------------------- - // Purpose: call result for finding a leaderboard, returned as a result of FindOrCreateLeaderboard() or FindLeaderboard() - // use CCallResult<> to map this async result to a member function - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 4)] - public struct LeaderboardFindResult_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 4; - public SteamLeaderboard_t m_hSteamLeaderboard; // handle to the leaderboard serarched for, 0 if no leaderboard found - public byte m_bLeaderboardFound; // 0 if no leaderboard found - } - - //----------------------------------------------------------------------------- - // Purpose: call result indicating scores for a leaderboard have been downloaded and are ready to be retrieved, returned as a result of DownloadLeaderboardEntries() - // use CCallResult<> to map this async result to a member function - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 5)] - public struct LeaderboardScoresDownloaded_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 5; - public SteamLeaderboard_t m_hSteamLeaderboard; - public SteamLeaderboardEntries_t m_hSteamLeaderboardEntries; // the handle to pass into GetDownloadedLeaderboardEntries() - public int m_cEntryCount; // the number of entries downloaded - } - - //----------------------------------------------------------------------------- - // Purpose: call result indicating scores has been uploaded, returned as a result of UploadLeaderboardScore() - // use CCallResult<> to map this async result to a member function - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 6)] - public struct LeaderboardScoreUploaded_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 6; - public byte m_bSuccess; // 1 if the call was successful - public SteamLeaderboard_t m_hSteamLeaderboard; // the leaderboard handle that was - public int m_nScore; // the score that was attempted to set - public byte m_bScoreChanged; // true if the score in the leaderboard change, false if the existing score was better - public int m_nGlobalRankNew; // the new global rank of the user in this leaderboard - public int m_nGlobalRankPrevious; // the previous global rank of the user in this leaderboard; 0 if the user had no existing entry in the leaderboard - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 7)] - public struct NumberOfCurrentPlayers_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 7; - public byte m_bSuccess; // 1 if the call was successful - public int m_cPlayers; // Number of players currently playing - } - - //----------------------------------------------------------------------------- - // Purpose: Callback indicating that a user's stats have been unloaded. - // Call RequestUserStats again to access stats for this user - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 8)] - public struct UserStatsUnloaded_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 8; - public CSteamID m_steamIDUser; // User whose stats have been unloaded - } - - //----------------------------------------------------------------------------- - // Purpose: Callback indicating that an achievement icon has been fetched - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 9)] - public struct UserAchievementIconFetched_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 9; - - public CGameID m_nGameID; // Game this is for - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchStatNameMax)] - private byte[] m_rgchAchievementName_; - public string m_rgchAchievementName // name of the achievement - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchAchievementName_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchAchievementName_, Constants.k_cchStatNameMax); } - } - [MarshalAs(UnmanagedType.I1)] - public bool m_bAchieved; // Is the icon for the achieved or not achieved version? - public int m_nIconHandle; // Handle to the image, which can be used in SteamUtils()->GetImageRGBA(), 0 means no image is set for the achievement - } - - //----------------------------------------------------------------------------- - // Purpose: Callback indicating that global achievement percentages are fetched - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 10)] - public struct GlobalAchievementPercentagesReady_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 10; - - public ulong m_nGameID; // Game this is for - public EResult m_eResult; // Result of the operation - } - - //----------------------------------------------------------------------------- - // Purpose: call result indicating UGC has been uploaded, returned as a result of SetLeaderboardUGC() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 11)] - public struct LeaderboardUGCSet_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 11; - public EResult m_eResult; // The result of the operation - public SteamLeaderboard_t m_hSteamLeaderboard; // the leaderboard handle that was - } - - //----------------------------------------------------------------------------- - // Purpose: callback indicating global stats have been received. - // Returned as a result of RequestGlobalStats() - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 12)] - public struct GlobalStatsReceived_t { - public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 12; - public ulong m_nGameID; // Game global stats were requested for - public EResult m_eResult; // The result of the request - } - - // callbacks - //----------------------------------------------------------------------------- - // Purpose: The country of the user changed - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 1)] - public struct IPCountry_t { - public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 1; - } - - //----------------------------------------------------------------------------- - // Purpose: Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 2)] - public struct LowBatteryPower_t { - public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 2; - public byte m_nMinutesBatteryLeft; - } - - //----------------------------------------------------------------------------- - // Purpose: called when a SteamAsyncCall_t has completed (or failed) - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 3)] - public struct SteamAPICallCompleted_t { - public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 3; - public SteamAPICall_t m_hAsyncCall; - public int m_iCallback; - public uint m_cubParam; - } - - //----------------------------------------------------------------------------- - // called when Steam wants to shutdown - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 4)] - public struct SteamShutdown_t { - public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 4; - } - - //----------------------------------------------------------------------------- - // callback for CheckFileSignature - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 5)] - public struct CheckFileSignature_t { - public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 5; - public ECheckFileSignature m_eCheckFileSignature; - } - - // k_iSteamUtilsCallbacks + 13 is taken - //----------------------------------------------------------------------------- - // Full Screen gamepad text input has been closed - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 14)] - public struct GamepadTextInputDismissed_t { - public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 14; - [MarshalAs(UnmanagedType.I1)] - public bool m_bSubmitted; // true if user entered & accepted text (Call ISteamUtils::GetEnteredGamepadTextInput() for text), false if canceled input - public uint m_unSubmittedText; - public AppId_t m_unAppID; - } - - // k_iSteamUtilsCallbacks + 15 through 35 are taken - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 36)] - public struct AppResumingFromSuspend_t { - public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 36; - } - - // k_iSteamUtilsCallbacks + 37 is taken - //----------------------------------------------------------------------------- - // The floating on-screen keyboard has been closed - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)] - [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 38)] - public struct FloatingGamepadTextInputDismissed_t { - public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 38; - } - - //----------------------------------------------------------------------------- - // The text filtering dictionary has changed - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 39)] - public struct FilterTextDictionaryChanged_t { - public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 39; - public int m_eLanguage; // One of ELanguage, or k_LegallyRequiredFiltering - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamVideoCallbacks + 11)] - public struct GetVideoURLResult_t { - public const int k_iCallback = Constants.k_iSteamVideoCallbacks + 11; - public EResult m_eResult; - public AppId_t m_unVideoAppID; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] - private byte[] m_rgchURL_; - public string m_rgchURL - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchURL_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchURL_, 256); } - } - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamVideoCallbacks + 24)] - public struct GetOPFSettingsResult_t { - public const int k_iCallback = Constants.k_iSteamVideoCallbacks + 24; - public EResult m_eResult; - public AppId_t m_unVideoAppID; - } - - /// Callback struct used to notify when a connection has changed state - /// A struct used to describe a "fake IP" we have been assigned to - /// use as an identifier. This callback is posted when - /// ISteamNetworkingSoockets::BeginAsyncRequestFakeIP completes. - /// See also ISteamNetworkingSockets::GetFakeIP - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - [CallbackIdentity(Constants.k_iSteamNetworkingSocketsCallbacks + 3)] - public struct SteamNetworkingFakeIPResult_t { - public const int k_iCallback = Constants.k_iSteamNetworkingSocketsCallbacks + 3; - - /// Status/result of the allocation request. Possible failure values are: - /// - k_EResultBusy - you called GetFakeIP but the request has not completed. - /// - k_EResultInvalidParam - you called GetFakeIP with an invalid port index - /// - k_EResultLimitExceeded - You asked for too many ports, or made an - /// additional request after one had already succeeded - /// - k_EResultNoMatch - GetFakeIP was called, but no request has been made - /// - /// Note that, with the exception of k_EResultBusy (if you are polling), - /// it is highly recommended to treat all failures as fatal. - public EResult m_eResult; - - /// Local identity of the ISteamNetworkingSockets object that made - /// this request and is assigned the IP. This is needed in the callback - /// in the case where there are multiple ISteamNetworkingSockets objects. - /// (E.g. one for the user, and another for the local gameserver). - public SteamNetworkingIdentity m_identity; - - /// Fake IPv4 IP address that we have been assigned. NOTE: this - /// IP address is not exclusively ours! Steam tries to avoid sharing - /// IP addresses, but this may not always be possible. The IP address - /// may be currently in use by another host, but with different port(s). - /// The exact same IP:port address may have been used previously. - /// Steam tries to avoid reusing ports until they have not been in use for - /// some time, but this may not always be possible. - public uint m_unIP; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_nMaxReturnPorts)] - public ushort[] m_unPorts; - } - -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamCallbacks.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamCallbacks.cs.meta deleted file mode 100644 index 4acb852..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamCallbacks.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 80afdfc414f63f049bdfae509faaadf7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamConstants.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamConstants.cs deleted file mode 100644 index c125936..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamConstants.cs +++ /dev/null @@ -1,330 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class Constants { - public const string STEAMAPPLIST_INTERFACE_VERSION = "STEAMAPPLIST_INTERFACE_VERSION001"; - public const string STEAMAPPS_INTERFACE_VERSION = "STEAMAPPS_INTERFACE_VERSION008"; - public const string STEAMAPPTICKET_INTERFACE_VERSION = "STEAMAPPTICKET_INTERFACE_VERSION001"; - public const string STEAMCLIENT_INTERFACE_VERSION = "SteamClient020"; - public const string STEAMFRIENDS_INTERFACE_VERSION = "SteamFriends017"; - public const string STEAMGAMECOORDINATOR_INTERFACE_VERSION = "SteamGameCoordinator001"; - public const string STEAMGAMESERVER_INTERFACE_VERSION = "SteamGameServer015"; - public const string STEAMGAMESERVERSTATS_INTERFACE_VERSION = "SteamGameServerStats001"; - public const string STEAMHTMLSURFACE_INTERFACE_VERSION = "STEAMHTMLSURFACE_INTERFACE_VERSION_005"; - public const string STEAMHTTP_INTERFACE_VERSION = "STEAMHTTP_INTERFACE_VERSION003"; - public const string STEAMINPUT_INTERFACE_VERSION = "SteamInput006"; - public const string STEAMINVENTORY_INTERFACE_VERSION = "STEAMINVENTORY_INTERFACE_V003"; - public const string STEAMMATCHMAKING_INTERFACE_VERSION = "SteamMatchMaking009"; - public const string STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION = "SteamMatchMakingServers002"; - public const string STEAMGAMESEARCH_INTERFACE_VERSION = "SteamMatchGameSearch001"; - public const string STEAMPARTIES_INTERFACE_VERSION = "SteamParties002"; - public const string STEAMMUSIC_INTERFACE_VERSION = "STEAMMUSIC_INTERFACE_VERSION001"; - public const string STEAMMUSICREMOTE_INTERFACE_VERSION = "STEAMMUSICREMOTE_INTERFACE_VERSION001"; - public const string STEAMNETWORKING_INTERFACE_VERSION = "SteamNetworking006"; - public const string STEAMNETWORKINGMESSAGES_INTERFACE_VERSION = "SteamNetworkingMessages002"; - // Silence some warnings - public const string STEAMNETWORKINGSOCKETS_INTERFACE_VERSION = "SteamNetworkingSockets012"; - // Silence some warnings - public const string STEAMNETWORKINGUTILS_INTERFACE_VERSION = "SteamNetworkingUtils004"; - public const string STEAMPARENTALSETTINGS_INTERFACE_VERSION = "STEAMPARENTALSETTINGS_INTERFACE_VERSION001"; - public const string STEAMREMOTEPLAY_INTERFACE_VERSION = "STEAMREMOTEPLAY_INTERFACE_VERSION001"; - public const string STEAMREMOTESTORAGE_INTERFACE_VERSION = "STEAMREMOTESTORAGE_INTERFACE_VERSION016"; - public const string STEAMSCREENSHOTS_INTERFACE_VERSION = "STEAMSCREENSHOTS_INTERFACE_VERSION003"; - public const string STEAMUGC_INTERFACE_VERSION = "STEAMUGC_INTERFACE_VERSION017"; - public const string STEAMUSER_INTERFACE_VERSION = "SteamUser023"; - public const string STEAMUSERSTATS_INTERFACE_VERSION = "STEAMUSERSTATS_INTERFACE_VERSION012"; - public const string STEAMUTILS_INTERFACE_VERSION = "SteamUtils010"; - public const string STEAMVIDEO_INTERFACE_VERSION = "STEAMVIDEO_INTERFACE_V002"; - public const int k_cubAppProofOfPurchaseKeyMax = 240; // max supported length of a legacy cd key - // maximum length of friend group name (not including terminating nul!) - public const int k_cchMaxFriendsGroupName = 64; - // maximum number of groups a single user is allowed - public const int k_cFriendsGroupLimit = 100; - public const int k_cEnumerateFollowersMax = 50; - // maximum number of characters in a user's name. Two flavors; one for UTF-8 and one for UTF-16. - // The UTF-8 version has to be very generous to accomodate characters that get large when encoded - // in UTF-8. - public const int k_cchPersonaNameMax = 128; - public const int k_cwchPersonaNameMax = 32; - // size limit on chat room or member metadata - public const int k_cubChatMetadataMax = 8192; - // size limits on Rich Presence data - public const int k_cchMaxRichPresenceKeys = 30; - public const int k_cchMaxRichPresenceKeyLength = 64; - public const int k_cchMaxRichPresenceValueLength = 256; - // game server flags - public const int k_unFavoriteFlagNone = 0x00; - public const int k_unFavoriteFlagFavorite = 0x01; // this game favorite entry is for the favorites list - public const int k_unFavoriteFlagHistory = 0x02; // this game favorite entry is for the history list - //----------------------------------------------------------------------------- - // Purpose: Defines the largest allowed file size. Cloud files cannot be written - // in a single chunk over 100MB (and cannot be over 200MB total.) - //----------------------------------------------------------------------------- - public const int k_unMaxCloudFileChunkSize = 100 * 1024 * 1024; - public const int k_cchPublishedDocumentTitleMax = 128 + 1; - public const int k_cchPublishedDocumentDescriptionMax = 8000; - public const int k_cchPublishedDocumentChangeDescriptionMax = 8000; - public const int k_unEnumeratePublishedFilesMaxResults = 50; - public const int k_cchTagListMax = 1024 + 1; - public const int k_cchFilenameMax = 260; - public const int k_cchPublishedFileURLMax = 256; - public const int k_nScreenshotMaxTaggedUsers = 32; - public const int k_nScreenshotMaxTaggedPublishedFiles = 32; - public const int k_cubUFSTagTypeMax = 255; - public const int k_cubUFSTagValueMax = 255; - // Required with of a thumbnail provided to AddScreenshotToLibrary. If you do not provide a thumbnail - // one will be generated. - public const int k_ScreenshotThumbWidth = 200; - public const int kNumUGCResultsPerPage = 50; - public const int k_cchDeveloperMetadataMax = 5000; - public const int k_nCubTicketMaxLength = 2560; - // size limit on stat or achievement name (UTF-8 encoded) - public const int k_cchStatNameMax = 128; - // maximum number of bytes for a leaderboard name (UTF-8 encoded) - public const int k_cchLeaderboardNameMax = 128; - // maximum number of details int32's storable for a single leaderboard entry - public const int k_cLeaderboardDetailsMax = 64; - // - // Max size (in bytes of UTF-8 data, not in characters) of server fields, including null terminator. - // WARNING: These cannot be changed easily, without breaking clients using old interfaces. - // - public const int k_cbMaxGameServerGameDir = 32; - public const int k_cbMaxGameServerMapName = 32; - public const int k_cbMaxGameServerGameDescription = 64; - public const int k_cbMaxGameServerName = 64; - public const int k_cbMaxGameServerTags = 128; - public const int k_cbMaxGameServerGameData = 2048; - // Forward declare types - //----------------------------------------------------------------------------- - // Purpose: Base values for callback identifiers, each callback must - // have a unique ID. - //----------------------------------------------------------------------------- - public const int k_iSteamUserCallbacks = 100; - public const int k_iSteamGameServerCallbacks = 200; - public const int k_iSteamFriendsCallbacks = 300; - public const int k_iSteamBillingCallbacks = 400; - public const int k_iSteamMatchmakingCallbacks = 500; - public const int k_iSteamContentServerCallbacks = 600; - public const int k_iSteamUtilsCallbacks = 700; - public const int k_iSteamAppsCallbacks = 1000; - public const int k_iSteamUserStatsCallbacks = 1100; - public const int k_iSteamNetworkingCallbacks = 1200; - public const int k_iSteamNetworkingSocketsCallbacks = 1220; - public const int k_iSteamNetworkingMessagesCallbacks = 1250; - public const int k_iSteamNetworkingUtilsCallbacks = 1280; - public const int k_iSteamRemoteStorageCallbacks = 1300; - public const int k_iSteamGameServerItemsCallbacks = 1500; - public const int k_iSteamGameCoordinatorCallbacks = 1700; - public const int k_iSteamGameServerStatsCallbacks = 1800; - public const int k_iSteam2AsyncCallbacks = 1900; - public const int k_iSteamGameStatsCallbacks = 2000; - public const int k_iSteamHTTPCallbacks = 2100; - public const int k_iSteamScreenshotsCallbacks = 2300; - // NOTE: 2500-2599 are reserved - public const int k_iSteamStreamLauncherCallbacks = 2600; - public const int k_iSteamControllerCallbacks = 2800; - public const int k_iSteamUGCCallbacks = 3400; - public const int k_iSteamStreamClientCallbacks = 3500; - public const int k_iSteamAppListCallbacks = 3900; - public const int k_iSteamMusicCallbacks = 4000; - public const int k_iSteamMusicRemoteCallbacks = 4100; - public const int k_iSteamGameNotificationCallbacks = 4400; - public const int k_iSteamHTMLSurfaceCallbacks = 4500; - public const int k_iSteamVideoCallbacks = 4600; - public const int k_iSteamInventoryCallbacks = 4700; - public const int k_ISteamParentalSettingsCallbacks = 5000; - public const int k_iSteamGameSearchCallbacks = 5200; - public const int k_iSteamPartiesCallbacks = 5300; - public const int k_iSteamSTARCallbacks = 5500; - public const int k_iSteamRemotePlayCallbacks = 5700; - public const int k_iSteamChatCallbacks = 5900; - /// Pass to SteamGameServer_Init to indicate that the same UDP port will be used for game traffic - /// UDP queries for server browser pings and LAN discovery. In this case, Steam will not open up a - /// socket to handle server browser queries, and you must use ISteamGameServer::HandleIncomingPacket - /// and ISteamGameServer::GetNextOutgoingPacket to handle packets related to server discovery on your socket. - public const ushort STEAMGAMESERVER_QUERY_PORT_SHARED = 0xffff; - public const int k_unSteamAccountIDMask = -1; - public const int k_unSteamAccountInstanceMask = 0x000FFFFF; - public const int k_unSteamUserDefaultInstance = 1; // fixed instance for all individual users - public const int k_cchGameExtraInfoMax = 64; - public const int k_nSteamEncryptedAppTicketSymmetricKeyLen = 32; - /// Port number(s) assigned to us. Only the first entries will contain - /// nonzero values. Entries corresponding to ports beyond what was - /// allocated for you will be zero. - /// - /// (NOTE: At the time of this writing, the maximum number of ports you may - /// request is 4.) - public const int k_nMaxReturnPorts = 8; - /// Max length of diagnostic error message - public const int k_cchMaxSteamNetworkingErrMsg = 1024; - /// Max length, in bytes (including null terminator) of the reason string - /// when a connection is closed. - public const int k_cchSteamNetworkingMaxConnectionCloseReason = 128; - /// Max length, in bytes (include null terminator) of debug description - /// of a connection. - public const int k_cchSteamNetworkingMaxConnectionDescription = 128; - /// Max length of the app's part of the description - public const int k_cchSteamNetworkingMaxConnectionAppName = 32; - public const int k_nSteamNetworkConnectionInfoFlags_Unauthenticated = 1; // We don't have a certificate for the remote host. - public const int k_nSteamNetworkConnectionInfoFlags_Unencrypted = 2; // Information is being sent out over a wire unencrypted (by this library) - public const int k_nSteamNetworkConnectionInfoFlags_LoopbackBuffers = 4; // Internal loopback buffers. Won't be true for localhost. (You can check the address to determine that.) This implies k_nSteamNetworkConnectionInfoFlags_FastLAN - public const int k_nSteamNetworkConnectionInfoFlags_Fast = 8; // The connection is "fast" and "reliable". Either internal/localhost (check the address to find out), or the peer is on the same LAN. (Probably. It's based on the address and the ping time, this is actually hard to determine unambiguously). - public const int k_nSteamNetworkConnectionInfoFlags_Relayed = 16; // The connection is relayed somehow (SDR or TURN). - public const int k_nSteamNetworkConnectionInfoFlags_DualWifi = 32; // We're taking advantage of dual-wifi multi-path - // - // Network messages - // - /// Max size of a single message that we can SEND. - /// Note: We might be wiling to receive larger messages, - /// and our peer might, too. - public const int k_cbMaxSteamNetworkingSocketsMessageSizeSend = 512 * 1024; - // - // Flags used to set options for message sending - // - // Send the message unreliably. Can be lost. Messages *can* be larger than a - // single MTU (UDP packet), but there is no retransmission, so if any piece - // of the message is lost, the entire message will be dropped. - // - // The sending API does have some knowledge of the underlying connection, so - // if there is no NAT-traversal accomplished or there is a recognized adjustment - // happening on the connection, the packet will be batched until the connection - // is open again. - // - // Migration note: This is not exactly the same as k_EP2PSendUnreliable! You - // probably want k_ESteamNetworkingSendType_UnreliableNoNagle - public const int k_nSteamNetworkingSend_Unreliable = 0; - // Disable Nagle's algorithm. - // By default, Nagle's algorithm is applied to all outbound messages. This means - // that the message will NOT be sent immediately, in case further messages are - // sent soon after you send this, which can be grouped together. Any time there - // is enough buffered data to fill a packet, the packets will be pushed out immediately, - // but partially-full packets not be sent until the Nagle timer expires. See - // ISteamNetworkingSockets::FlushMessagesOnConnection, ISteamNetworkingMessages::FlushMessagesToUser - // - // NOTE: Don't just send every message without Nagle because you want packets to get there - // quicker. Make sure you understand the problem that Nagle is solving before disabling it. - // If you are sending small messages, often many at the same time, then it is very likely that - // it will be more efficient to leave Nagle enabled. A typical proper use of this flag is - // when you are sending what you know will be the last message sent for a while (e.g. the last - // in the server simulation tick to a particular client), and you use this flag to flush all - // messages. - public const int k_nSteamNetworkingSend_NoNagle = 1; - // Send a message unreliably, bypassing Nagle's algorithm for this message and any messages - // currently pending on the Nagle timer. This is equivalent to using k_ESteamNetworkingSend_Unreliable - // and then immediately flushing the messages using ISteamNetworkingSockets::FlushMessagesOnConnection - // or ISteamNetworkingMessages::FlushMessagesToUser. (But using this flag is more efficient since you - // only make one API call.) - public const int k_nSteamNetworkingSend_UnreliableNoNagle = k_nSteamNetworkingSend_Unreliable|k_nSteamNetworkingSend_NoNagle; - // If the message cannot be sent very soon (because the connection is still doing some initial - // handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable - // messages. Using this flag on reliable messages is invalid. - public const int k_nSteamNetworkingSend_NoDelay = 4; - // Send an unreliable message, but if it cannot be sent relatively quickly, just drop it instead of queuing it. - // This is useful for messages that are not useful if they are excessively delayed, such as voice data. - // NOTE: The Nagle algorithm is not used, and if the message is not dropped, any messages waiting on the - // Nagle timer are immediately flushed. - // - // A message will be dropped under the following circumstances: - // - the connection is not fully connected. (E.g. the "Connecting" or "FindingRoute" states) - // - there is a sufficiently large number of messages queued up already such that the current message - // will not be placed on the wire in the next ~200ms or so. - // - // If a message is dropped for these reasons, k_EResultIgnored will be returned. - public const int k_nSteamNetworkingSend_UnreliableNoDelay = k_nSteamNetworkingSend_Unreliable|k_nSteamNetworkingSend_NoDelay|k_nSteamNetworkingSend_NoNagle; - // Reliable message send. Can send up to k_cbMaxSteamNetworkingSocketsMessageSizeSend bytes in a single message. - // Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for - // efficient sends of large chunks of data. - // - // The Nagle algorithm is used. See notes on k_ESteamNetworkingSendType_Unreliable for more details. - // See k_ESteamNetworkingSendType_ReliableNoNagle, ISteamNetworkingSockets::FlushMessagesOnConnection, - // ISteamNetworkingMessages::FlushMessagesToUser - // - // Migration note: This is NOT the same as k_EP2PSendReliable, it's more like k_EP2PSendReliableWithBuffering - public const int k_nSteamNetworkingSend_Reliable = 8; - // Send a message reliably, but bypass Nagle's algorithm. - // - // Migration note: This is equivalent to k_EP2PSendReliable - public const int k_nSteamNetworkingSend_ReliableNoNagle = k_nSteamNetworkingSend_Reliable|k_nSteamNetworkingSend_NoNagle; - // By default, message sending is queued, and the work of encryption and talking to - // the operating system sockets, etc is done on a service thread. This is usually a - // a performance win when messages are sent from the "main thread". However, if this - // flag is set, and data is ready to be sent immediately (either from this message - // or earlier queued data), then that work will be done in the current thread, before - // the current call returns. If data is not ready to be sent (due to rate limiting - // or Nagle), then this flag has no effect. - // - // This is an advanced flag used to control performance at a very low level. For - // most applications running on modern hardware with more than one CPU core, doing - // the work of sending on a service thread will yield the best performance. Only - // use this flag if you have a really good reason and understand what you are doing. - // Otherwise you will probably just make performance worse. - public const int k_nSteamNetworkingSend_UseCurrentThread = 16; - // When sending a message using ISteamNetworkingMessages, automatically re-establish - // a broken session, without returning k_EResultNoConnection. Without this flag, - // if you attempt to send a message, and the session was proactively closed by the - // peer, or an error occurred that disrupted communications, then you must close the - // session using ISteamNetworkingMessages::CloseSessionWithUser before attempting to - // send another message. (Or you can simply add this flag and retry.) In this way, - // the disruption cannot go unnoticed, and a more clear order of events can be - // ascertained. This is especially important when reliable messages are used, since - // if the connection is disrupted, some of those messages will not have been delivered, - // and it is in general not possible to know which. Although a - // SteamNetworkingMessagesSessionFailed_t callback will be posted when an error occurs - // to notify you that a failure has happened, callbacks are asynchronous, so it is not - // possible to tell exactly when it happened. And because the primary purpose of - // ISteamNetworkingMessages is to be like UDP, there is no notification when a peer closes - // the session. - // - // If you are not using any reliable messages (e.g. you are using ISteamNetworkingMessages - // exactly as a transport replacement for UDP-style datagrams only), you may not need to - // know when an underlying connection fails, and so you may not need this notification. - public const int k_nSteamNetworkingSend_AutoRestartBrokenSession = 32; - /// Max possible length of a ping location, in string format. This is - /// an extremely conservative worst case value which leaves room for future - /// syntax enhancements. Most strings in practice are a lot shorter. - /// If you are storing many of these, you will very likely benefit from - /// using dynamic memory. - public const int k_cchMaxSteamNetworkingPingLocationString = 1024; - /// Special values that are returned by some functions that return a ping. - public const int k_nSteamNetworkingPing_Failed = -1; - public const int k_nSteamNetworkingPing_Unknown = -2; - // Bitmask of types to share - public const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Default = -1; // Special value - use user defaults - public const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Disable = 0; // Do not do any ICE work at all or share any IP addresses with peer - public const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Relay = 1; // Relayed connection via TURN server. - public const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Private = 2; // host addresses that appear to be link-local or RFC1918 addresses - public const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_Public = 4; // STUN reflexive addresses, or host address that isn't a "private" address - public const int k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_All = 0x7fffffff; - public const ulong k_ulPartyBeaconIdInvalid = 0; - public const int INVALID_HTTPREQUEST_HANDLE = 0; - public const int STEAM_INPUT_MAX_COUNT = 16; - public const int STEAM_INPUT_MAX_ANALOG_ACTIONS = 24; - public const int STEAM_INPUT_MAX_DIGITAL_ACTIONS = 256; - public const int STEAM_INPUT_MAX_ORIGINS = 8; - public const int STEAM_INPUT_MAX_ACTIVE_LAYERS = 16; - // When sending an option to a specific controller handle, you can send to all devices via this command - public const ulong STEAM_INPUT_HANDLE_ALL_CONTROLLERS = 0xFFFFFFFFFFFFFFFF; - public const float STEAM_INPUT_MIN_ANALOG_ACTION_DATA = -1.0f; - public const float STEAM_INPUT_MAX_ANALOG_ACTION_DATA = 1.0f; - // maximum number of characters a lobby metadata key can be - public const byte k_nMaxLobbyKeyLength = 255; - public const int k_SteamMusicNameMaxLength = 255; - public const int k_SteamMusicPNGMaxLength = 65535; - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamConstants.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamConstants.cs.meta deleted file mode 100644 index d5e07af..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamConstants.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: faa542b98284c9a40a8b61bf0977c97b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamEnums.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamEnums.cs deleted file mode 100644 index bb31a82..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamEnums.cs +++ /dev/null @@ -1,2787 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -using Flags = System.FlagsAttribute; - -namespace Steamworks { - //----------------------------------------------------------------------------- - // Purpose: set of relationships to other users - //----------------------------------------------------------------------------- - public enum EFriendRelationship : int { - k_EFriendRelationshipNone = 0, - k_EFriendRelationshipBlocked = 1, // this doesn't get stored; the user has just done an Ignore on an friendship invite - k_EFriendRelationshipRequestRecipient = 2, - k_EFriendRelationshipFriend = 3, - k_EFriendRelationshipRequestInitiator = 4, - k_EFriendRelationshipIgnored = 5, // this is stored; the user has explicit blocked this other user from comments/chat/etc - k_EFriendRelationshipIgnoredFriend = 6, - k_EFriendRelationshipSuggested_DEPRECATED = 7, // was used by the original implementation of the facebook linking feature, but now unused. - - // keep this updated - k_EFriendRelationshipMax = 8, - } - - //----------------------------------------------------------------------------- - // Purpose: list of states a friend can be in - //----------------------------------------------------------------------------- - public enum EPersonaState : int { - k_EPersonaStateOffline = 0, // friend is not currently logged on - k_EPersonaStateOnline = 1, // friend is logged on - k_EPersonaStateBusy = 2, // user is on, but busy - k_EPersonaStateAway = 3, // auto-away feature - k_EPersonaStateSnooze = 4, // auto-away for a long time - k_EPersonaStateLookingToTrade = 5, // Online, trading - k_EPersonaStateLookingToPlay = 6, // Online, wanting to play - k_EPersonaStateInvisible = 7, // Online, but appears offline to friends. This status is never published to clients. - k_EPersonaStateMax, - } - - //----------------------------------------------------------------------------- - // Purpose: flags for enumerating friends list, or quickly checking a the relationship between users - //----------------------------------------------------------------------------- - [Flags] - public enum EFriendFlags : int { - k_EFriendFlagNone = 0x00, - k_EFriendFlagBlocked = 0x01, - k_EFriendFlagFriendshipRequested = 0x02, - k_EFriendFlagImmediate = 0x04, // "regular" friend - k_EFriendFlagClanMember = 0x08, - k_EFriendFlagOnGameServer = 0x10, - // k_EFriendFlagHasPlayedWith = 0x20, // not currently used - // k_EFriendFlagFriendOfFriend = 0x40, // not currently used - k_EFriendFlagRequestingFriendship = 0x80, - k_EFriendFlagRequestingInfo = 0x100, - k_EFriendFlagIgnored = 0x200, - k_EFriendFlagIgnoredFriend = 0x400, - // k_EFriendFlagSuggested = 0x800, // not used - k_EFriendFlagChatMember = 0x1000, - k_EFriendFlagAll = 0xFFFF, - } - - //----------------------------------------------------------------------------- - // Purpose: user restriction flags - //----------------------------------------------------------------------------- - public enum EUserRestriction : int { - k_nUserRestrictionNone = 0, // no known chat/content restriction - k_nUserRestrictionUnknown = 1, // we don't know yet (user offline) - k_nUserRestrictionAnyChat = 2, // user is not allowed to (or can't) send/recv any chat - k_nUserRestrictionVoiceChat = 4, // user is not allowed to (or can't) send/recv voice chat - k_nUserRestrictionGroupChat = 8, // user is not allowed to (or can't) send/recv group chat - k_nUserRestrictionRating = 16, // user is too young according to rating in current region - k_nUserRestrictionGameInvites = 32, // user cannot send or recv game invites (e.g. mobile) - k_nUserRestrictionTrading = 64, // user cannot participate in trading (console, mobile) - } - - // These values are passed as parameters to the store - public enum EOverlayToStoreFlag : int { - k_EOverlayToStoreFlag_None = 0, - k_EOverlayToStoreFlag_AddToCart = 1, - k_EOverlayToStoreFlag_AddToCartAndShow = 2, - } - - //----------------------------------------------------------------------------- - // Purpose: Tells Steam where to place the browser window inside the overlay - //----------------------------------------------------------------------------- - public enum EActivateGameOverlayToWebPageMode : int { - k_EActivateGameOverlayToWebPageMode_Default = 0, // Browser will open next to all other windows that the user has open in the overlay. - // The window will remain open, even if the user closes then re-opens the overlay. - - k_EActivateGameOverlayToWebPageMode_Modal = 1 // Browser will be opened in a special overlay configuration which hides all other windows - // that the user has open in the overlay. When the user closes the overlay, the browser window - // will also close. When the user closes the browser window, the overlay will automatically close. - } - - //----------------------------------------------------------------------------- - // Purpose: See GetProfileItemPropertyString and GetProfileItemPropertyUint - //----------------------------------------------------------------------------- - public enum ECommunityProfileItemType : int { - k_ECommunityProfileItemType_AnimatedAvatar = 0, - k_ECommunityProfileItemType_AvatarFrame = 1, - k_ECommunityProfileItemType_ProfileModifier = 2, - k_ECommunityProfileItemType_ProfileBackground = 3, - k_ECommunityProfileItemType_MiniProfileBackground = 4, - } - - public enum ECommunityProfileItemProperty : int { - k_ECommunityProfileItemProperty_ImageSmall = 0, // string - k_ECommunityProfileItemProperty_ImageLarge = 1, // string - k_ECommunityProfileItemProperty_InternalName = 2, // string - k_ECommunityProfileItemProperty_Title = 3, // string - k_ECommunityProfileItemProperty_Description = 4, // string - k_ECommunityProfileItemProperty_AppID = 5, // uint32 - k_ECommunityProfileItemProperty_TypeID = 6, // uint32 - k_ECommunityProfileItemProperty_Class = 7, // uint32 - k_ECommunityProfileItemProperty_MovieWebM = 8, // string - k_ECommunityProfileItemProperty_MovieMP4 = 9, // string - k_ECommunityProfileItemProperty_MovieWebMSmall = 10, // string - k_ECommunityProfileItemProperty_MovieMP4Small = 11, // string - } - - // used in PersonaStateChange_t::m_nChangeFlags to describe what's changed about a user - // these flags describe what the client has learned has changed recently, so on startup you'll see a name, avatar & relationship change for every friend - [Flags] - public enum EPersonaChange : int { - k_EPersonaChangeName = 0x0001, - k_EPersonaChangeStatus = 0x0002, - k_EPersonaChangeComeOnline = 0x0004, - k_EPersonaChangeGoneOffline = 0x0008, - k_EPersonaChangeGamePlayed = 0x0010, - k_EPersonaChangeGameServer = 0x0020, - k_EPersonaChangeAvatar = 0x0040, - k_EPersonaChangeJoinedSource= 0x0080, - k_EPersonaChangeLeftSource = 0x0100, - k_EPersonaChangeRelationshipChanged = 0x0200, - k_EPersonaChangeNameFirstSet = 0x0400, - k_EPersonaChangeBroadcast = 0x0800, - k_EPersonaChangeNickname = 0x1000, - k_EPersonaChangeSteamLevel = 0x2000, - k_EPersonaChangeRichPresence = 0x4000, - } - - // list of possible return values from the ISteamGameCoordinator API - public enum EGCResults : int { - k_EGCResultOK = 0, - k_EGCResultNoMessage = 1, // There is no message in the queue - k_EGCResultBufferTooSmall = 2, // The buffer is too small for the requested message - k_EGCResultNotLoggedOn = 3, // The client is not logged onto Steam - k_EGCResultInvalidMessage = 4, // Something was wrong with the message being sent with SendMessage - } - - public enum EHTMLMouseButton : int { - eHTMLMouseButton_Left = 0, - eHTMLMouseButton_Right = 1, - eHTMLMouseButton_Middle = 2, - } - - public enum EMouseCursor : int { - dc_user = 0, - dc_none, - dc_arrow, - dc_ibeam, - dc_hourglass, - dc_waitarrow, - dc_crosshair, - dc_up, - dc_sizenw, - dc_sizese, - dc_sizene, - dc_sizesw, - dc_sizew, - dc_sizee, - dc_sizen, - dc_sizes, - dc_sizewe, - dc_sizens, - dc_sizeall, - dc_no, - dc_hand, - dc_blank, // don't show any custom cursor, just use your default - dc_middle_pan, - dc_north_pan, - dc_north_east_pan, - dc_east_pan, - dc_south_east_pan, - dc_south_pan, - dc_south_west_pan, - dc_west_pan, - dc_north_west_pan, - dc_alias, - dc_cell, - dc_colresize, - dc_copycur, - dc_verticaltext, - dc_rowresize, - dc_zoomin, - dc_zoomout, - dc_help, - dc_custom, - - dc_last, // custom cursors start from this value and up - } - - [Flags] - public enum EHTMLKeyModifiers : int { - k_eHTMLKeyModifier_None = 0, - k_eHTMLKeyModifier_AltDown = 1 << 0, - k_eHTMLKeyModifier_CtrlDown = 1 << 1, - k_eHTMLKeyModifier_ShiftDown = 1 << 2, - } - - public enum EInputSourceMode : int { - k_EInputSourceMode_None, - k_EInputSourceMode_Dpad, - k_EInputSourceMode_Buttons, - k_EInputSourceMode_FourButtons, - k_EInputSourceMode_AbsoluteMouse, - k_EInputSourceMode_RelativeMouse, - k_EInputSourceMode_JoystickMove, - k_EInputSourceMode_JoystickMouse, - k_EInputSourceMode_JoystickCamera, - k_EInputSourceMode_ScrollWheel, - k_EInputSourceMode_Trigger, - k_EInputSourceMode_TouchMenu, - k_EInputSourceMode_MouseJoystick, - k_EInputSourceMode_MouseRegion, - k_EInputSourceMode_RadialMenu, - k_EInputSourceMode_SingleButton, - k_EInputSourceMode_Switches - } - - // Note: Please do not use action origins as a way to identify controller types. There is no - // guarantee that they will be added in a contiguous manner - use GetInputTypeForHandle instead. - // Versions of Steam that add new controller types in the future will extend this enum so if you're - // using a lookup table please check the bounds of any origins returned by Steam. - public enum EInputActionOrigin : int { - // Steam Controller - k_EInputActionOrigin_None, - k_EInputActionOrigin_SteamController_A, - k_EInputActionOrigin_SteamController_B, - k_EInputActionOrigin_SteamController_X, - k_EInputActionOrigin_SteamController_Y, - k_EInputActionOrigin_SteamController_LeftBumper, - k_EInputActionOrigin_SteamController_RightBumper, - k_EInputActionOrigin_SteamController_LeftGrip, - k_EInputActionOrigin_SteamController_RightGrip, - k_EInputActionOrigin_SteamController_Start, - k_EInputActionOrigin_SteamController_Back, - k_EInputActionOrigin_SteamController_LeftPad_Touch, - k_EInputActionOrigin_SteamController_LeftPad_Swipe, - k_EInputActionOrigin_SteamController_LeftPad_Click, - k_EInputActionOrigin_SteamController_LeftPad_DPadNorth, - k_EInputActionOrigin_SteamController_LeftPad_DPadSouth, - k_EInputActionOrigin_SteamController_LeftPad_DPadWest, - k_EInputActionOrigin_SteamController_LeftPad_DPadEast, - k_EInputActionOrigin_SteamController_RightPad_Touch, - k_EInputActionOrigin_SteamController_RightPad_Swipe, - k_EInputActionOrigin_SteamController_RightPad_Click, - k_EInputActionOrigin_SteamController_RightPad_DPadNorth, - k_EInputActionOrigin_SteamController_RightPad_DPadSouth, - k_EInputActionOrigin_SteamController_RightPad_DPadWest, - k_EInputActionOrigin_SteamController_RightPad_DPadEast, - k_EInputActionOrigin_SteamController_LeftTrigger_Pull, - k_EInputActionOrigin_SteamController_LeftTrigger_Click, - k_EInputActionOrigin_SteamController_RightTrigger_Pull, - k_EInputActionOrigin_SteamController_RightTrigger_Click, - k_EInputActionOrigin_SteamController_LeftStick_Move, - k_EInputActionOrigin_SteamController_LeftStick_Click, - k_EInputActionOrigin_SteamController_LeftStick_DPadNorth, - k_EInputActionOrigin_SteamController_LeftStick_DPadSouth, - k_EInputActionOrigin_SteamController_LeftStick_DPadWest, - k_EInputActionOrigin_SteamController_LeftStick_DPadEast, - k_EInputActionOrigin_SteamController_Gyro_Move, - k_EInputActionOrigin_SteamController_Gyro_Pitch, - k_EInputActionOrigin_SteamController_Gyro_Yaw, - k_EInputActionOrigin_SteamController_Gyro_Roll, - k_EInputActionOrigin_SteamController_Reserved0, - k_EInputActionOrigin_SteamController_Reserved1, - k_EInputActionOrigin_SteamController_Reserved2, - k_EInputActionOrigin_SteamController_Reserved3, - k_EInputActionOrigin_SteamController_Reserved4, - k_EInputActionOrigin_SteamController_Reserved5, - k_EInputActionOrigin_SteamController_Reserved6, - k_EInputActionOrigin_SteamController_Reserved7, - k_EInputActionOrigin_SteamController_Reserved8, - k_EInputActionOrigin_SteamController_Reserved9, - k_EInputActionOrigin_SteamController_Reserved10, - - // PS4 Dual Shock - k_EInputActionOrigin_PS4_X, - k_EInputActionOrigin_PS4_Circle, - k_EInputActionOrigin_PS4_Triangle, - k_EInputActionOrigin_PS4_Square, - k_EInputActionOrigin_PS4_LeftBumper, - k_EInputActionOrigin_PS4_RightBumper, - k_EInputActionOrigin_PS4_Options, //Start - k_EInputActionOrigin_PS4_Share, //Back - k_EInputActionOrigin_PS4_LeftPad_Touch, - k_EInputActionOrigin_PS4_LeftPad_Swipe, - k_EInputActionOrigin_PS4_LeftPad_Click, - k_EInputActionOrigin_PS4_LeftPad_DPadNorth, - k_EInputActionOrigin_PS4_LeftPad_DPadSouth, - k_EInputActionOrigin_PS4_LeftPad_DPadWest, - k_EInputActionOrigin_PS4_LeftPad_DPadEast, - k_EInputActionOrigin_PS4_RightPad_Touch, - k_EInputActionOrigin_PS4_RightPad_Swipe, - k_EInputActionOrigin_PS4_RightPad_Click, - k_EInputActionOrigin_PS4_RightPad_DPadNorth, - k_EInputActionOrigin_PS4_RightPad_DPadSouth, - k_EInputActionOrigin_PS4_RightPad_DPadWest, - k_EInputActionOrigin_PS4_RightPad_DPadEast, - k_EInputActionOrigin_PS4_CenterPad_Touch, - k_EInputActionOrigin_PS4_CenterPad_Swipe, - k_EInputActionOrigin_PS4_CenterPad_Click, - k_EInputActionOrigin_PS4_CenterPad_DPadNorth, - k_EInputActionOrigin_PS4_CenterPad_DPadSouth, - k_EInputActionOrigin_PS4_CenterPad_DPadWest, - k_EInputActionOrigin_PS4_CenterPad_DPadEast, - k_EInputActionOrigin_PS4_LeftTrigger_Pull, - k_EInputActionOrigin_PS4_LeftTrigger_Click, - k_EInputActionOrigin_PS4_RightTrigger_Pull, - k_EInputActionOrigin_PS4_RightTrigger_Click, - k_EInputActionOrigin_PS4_LeftStick_Move, - k_EInputActionOrigin_PS4_LeftStick_Click, - k_EInputActionOrigin_PS4_LeftStick_DPadNorth, - k_EInputActionOrigin_PS4_LeftStick_DPadSouth, - k_EInputActionOrigin_PS4_LeftStick_DPadWest, - k_EInputActionOrigin_PS4_LeftStick_DPadEast, - k_EInputActionOrigin_PS4_RightStick_Move, - k_EInputActionOrigin_PS4_RightStick_Click, - k_EInputActionOrigin_PS4_RightStick_DPadNorth, - k_EInputActionOrigin_PS4_RightStick_DPadSouth, - k_EInputActionOrigin_PS4_RightStick_DPadWest, - k_EInputActionOrigin_PS4_RightStick_DPadEast, - k_EInputActionOrigin_PS4_DPad_North, - k_EInputActionOrigin_PS4_DPad_South, - k_EInputActionOrigin_PS4_DPad_West, - k_EInputActionOrigin_PS4_DPad_East, - k_EInputActionOrigin_PS4_Gyro_Move, - k_EInputActionOrigin_PS4_Gyro_Pitch, - k_EInputActionOrigin_PS4_Gyro_Yaw, - k_EInputActionOrigin_PS4_Gyro_Roll, - k_EInputActionOrigin_PS4_DPad_Move, - k_EInputActionOrigin_PS4_Reserved1, - k_EInputActionOrigin_PS4_Reserved2, - k_EInputActionOrigin_PS4_Reserved3, - k_EInputActionOrigin_PS4_Reserved4, - k_EInputActionOrigin_PS4_Reserved5, - k_EInputActionOrigin_PS4_Reserved6, - k_EInputActionOrigin_PS4_Reserved7, - k_EInputActionOrigin_PS4_Reserved8, - k_EInputActionOrigin_PS4_Reserved9, - k_EInputActionOrigin_PS4_Reserved10, - - // XBox One - k_EInputActionOrigin_XBoxOne_A, - k_EInputActionOrigin_XBoxOne_B, - k_EInputActionOrigin_XBoxOne_X, - k_EInputActionOrigin_XBoxOne_Y, - k_EInputActionOrigin_XBoxOne_LeftBumper, - k_EInputActionOrigin_XBoxOne_RightBumper, - k_EInputActionOrigin_XBoxOne_Menu, //Start - k_EInputActionOrigin_XBoxOne_View, //Back - k_EInputActionOrigin_XBoxOne_LeftTrigger_Pull, - k_EInputActionOrigin_XBoxOne_LeftTrigger_Click, - k_EInputActionOrigin_XBoxOne_RightTrigger_Pull, - k_EInputActionOrigin_XBoxOne_RightTrigger_Click, - k_EInputActionOrigin_XBoxOne_LeftStick_Move, - k_EInputActionOrigin_XBoxOne_LeftStick_Click, - k_EInputActionOrigin_XBoxOne_LeftStick_DPadNorth, - k_EInputActionOrigin_XBoxOne_LeftStick_DPadSouth, - k_EInputActionOrigin_XBoxOne_LeftStick_DPadWest, - k_EInputActionOrigin_XBoxOne_LeftStick_DPadEast, - k_EInputActionOrigin_XBoxOne_RightStick_Move, - k_EInputActionOrigin_XBoxOne_RightStick_Click, - k_EInputActionOrigin_XBoxOne_RightStick_DPadNorth, - k_EInputActionOrigin_XBoxOne_RightStick_DPadSouth, - k_EInputActionOrigin_XBoxOne_RightStick_DPadWest, - k_EInputActionOrigin_XBoxOne_RightStick_DPadEast, - k_EInputActionOrigin_XBoxOne_DPad_North, - k_EInputActionOrigin_XBoxOne_DPad_South, - k_EInputActionOrigin_XBoxOne_DPad_West, - k_EInputActionOrigin_XBoxOne_DPad_East, - k_EInputActionOrigin_XBoxOne_DPad_Move, - k_EInputActionOrigin_XBoxOne_LeftGrip_Lower, - k_EInputActionOrigin_XBoxOne_LeftGrip_Upper, - k_EInputActionOrigin_XBoxOne_RightGrip_Lower, - k_EInputActionOrigin_XBoxOne_RightGrip_Upper, - k_EInputActionOrigin_XBoxOne_Share, // Xbox Series X controllers only - k_EInputActionOrigin_XBoxOne_Reserved6, - k_EInputActionOrigin_XBoxOne_Reserved7, - k_EInputActionOrigin_XBoxOne_Reserved8, - k_EInputActionOrigin_XBoxOne_Reserved9, - k_EInputActionOrigin_XBoxOne_Reserved10, - - // XBox 360 - k_EInputActionOrigin_XBox360_A, - k_EInputActionOrigin_XBox360_B, - k_EInputActionOrigin_XBox360_X, - k_EInputActionOrigin_XBox360_Y, - k_EInputActionOrigin_XBox360_LeftBumper, - k_EInputActionOrigin_XBox360_RightBumper, - k_EInputActionOrigin_XBox360_Start, //Start - k_EInputActionOrigin_XBox360_Back, //Back - k_EInputActionOrigin_XBox360_LeftTrigger_Pull, - k_EInputActionOrigin_XBox360_LeftTrigger_Click, - k_EInputActionOrigin_XBox360_RightTrigger_Pull, - k_EInputActionOrigin_XBox360_RightTrigger_Click, - k_EInputActionOrigin_XBox360_LeftStick_Move, - k_EInputActionOrigin_XBox360_LeftStick_Click, - k_EInputActionOrigin_XBox360_LeftStick_DPadNorth, - k_EInputActionOrigin_XBox360_LeftStick_DPadSouth, - k_EInputActionOrigin_XBox360_LeftStick_DPadWest, - k_EInputActionOrigin_XBox360_LeftStick_DPadEast, - k_EInputActionOrigin_XBox360_RightStick_Move, - k_EInputActionOrigin_XBox360_RightStick_Click, - k_EInputActionOrigin_XBox360_RightStick_DPadNorth, - k_EInputActionOrigin_XBox360_RightStick_DPadSouth, - k_EInputActionOrigin_XBox360_RightStick_DPadWest, - k_EInputActionOrigin_XBox360_RightStick_DPadEast, - k_EInputActionOrigin_XBox360_DPad_North, - k_EInputActionOrigin_XBox360_DPad_South, - k_EInputActionOrigin_XBox360_DPad_West, - k_EInputActionOrigin_XBox360_DPad_East, - k_EInputActionOrigin_XBox360_DPad_Move, - k_EInputActionOrigin_XBox360_Reserved1, - k_EInputActionOrigin_XBox360_Reserved2, - k_EInputActionOrigin_XBox360_Reserved3, - k_EInputActionOrigin_XBox360_Reserved4, - k_EInputActionOrigin_XBox360_Reserved5, - k_EInputActionOrigin_XBox360_Reserved6, - k_EInputActionOrigin_XBox360_Reserved7, - k_EInputActionOrigin_XBox360_Reserved8, - k_EInputActionOrigin_XBox360_Reserved9, - k_EInputActionOrigin_XBox360_Reserved10, - - - // Switch - Pro or Joycons used as a single input device. - // This does not apply to a single joycon - k_EInputActionOrigin_Switch_A, - k_EInputActionOrigin_Switch_B, - k_EInputActionOrigin_Switch_X, - k_EInputActionOrigin_Switch_Y, - k_EInputActionOrigin_Switch_LeftBumper, - k_EInputActionOrigin_Switch_RightBumper, - k_EInputActionOrigin_Switch_Plus, //Start - k_EInputActionOrigin_Switch_Minus, //Back - k_EInputActionOrigin_Switch_Capture, - k_EInputActionOrigin_Switch_LeftTrigger_Pull, - k_EInputActionOrigin_Switch_LeftTrigger_Click, - k_EInputActionOrigin_Switch_RightTrigger_Pull, - k_EInputActionOrigin_Switch_RightTrigger_Click, - k_EInputActionOrigin_Switch_LeftStick_Move, - k_EInputActionOrigin_Switch_LeftStick_Click, - k_EInputActionOrigin_Switch_LeftStick_DPadNorth, - k_EInputActionOrigin_Switch_LeftStick_DPadSouth, - k_EInputActionOrigin_Switch_LeftStick_DPadWest, - k_EInputActionOrigin_Switch_LeftStick_DPadEast, - k_EInputActionOrigin_Switch_RightStick_Move, - k_EInputActionOrigin_Switch_RightStick_Click, - k_EInputActionOrigin_Switch_RightStick_DPadNorth, - k_EInputActionOrigin_Switch_RightStick_DPadSouth, - k_EInputActionOrigin_Switch_RightStick_DPadWest, - k_EInputActionOrigin_Switch_RightStick_DPadEast, - k_EInputActionOrigin_Switch_DPad_North, - k_EInputActionOrigin_Switch_DPad_South, - k_EInputActionOrigin_Switch_DPad_West, - k_EInputActionOrigin_Switch_DPad_East, - k_EInputActionOrigin_Switch_ProGyro_Move, // Primary Gyro in Pro Controller, or Right JoyCon - k_EInputActionOrigin_Switch_ProGyro_Pitch, // Primary Gyro in Pro Controller, or Right JoyCon - k_EInputActionOrigin_Switch_ProGyro_Yaw, // Primary Gyro in Pro Controller, or Right JoyCon - k_EInputActionOrigin_Switch_ProGyro_Roll, // Primary Gyro in Pro Controller, or Right JoyCon - k_EInputActionOrigin_Switch_DPad_Move, - k_EInputActionOrigin_Switch_Reserved1, - k_EInputActionOrigin_Switch_Reserved2, - k_EInputActionOrigin_Switch_Reserved3, - k_EInputActionOrigin_Switch_Reserved4, - k_EInputActionOrigin_Switch_Reserved5, - k_EInputActionOrigin_Switch_Reserved6, - k_EInputActionOrigin_Switch_Reserved7, - k_EInputActionOrigin_Switch_Reserved8, - k_EInputActionOrigin_Switch_Reserved9, - k_EInputActionOrigin_Switch_Reserved10, - - // Switch JoyCon Specific - k_EInputActionOrigin_Switch_RightGyro_Move, // Right JoyCon Gyro generally should correspond to Pro's single gyro - k_EInputActionOrigin_Switch_RightGyro_Pitch, // Right JoyCon Gyro generally should correspond to Pro's single gyro - k_EInputActionOrigin_Switch_RightGyro_Yaw, // Right JoyCon Gyro generally should correspond to Pro's single gyro - k_EInputActionOrigin_Switch_RightGyro_Roll, // Right JoyCon Gyro generally should correspond to Pro's single gyro - k_EInputActionOrigin_Switch_LeftGyro_Move, - k_EInputActionOrigin_Switch_LeftGyro_Pitch, - k_EInputActionOrigin_Switch_LeftGyro_Yaw, - k_EInputActionOrigin_Switch_LeftGyro_Roll, - k_EInputActionOrigin_Switch_LeftGrip_Lower, // Left JoyCon SR Button - k_EInputActionOrigin_Switch_LeftGrip_Upper, // Left JoyCon SL Button - k_EInputActionOrigin_Switch_RightGrip_Lower, // Right JoyCon SL Button - k_EInputActionOrigin_Switch_RightGrip_Upper, // Right JoyCon SR Button - k_EInputActionOrigin_Switch_JoyConButton_N, // With a Horizontal JoyCon this will be Y or what would be Dpad Right when vertical - k_EInputActionOrigin_Switch_JoyConButton_E, // X - k_EInputActionOrigin_Switch_JoyConButton_S, // A - k_EInputActionOrigin_Switch_JoyConButton_W, // B - k_EInputActionOrigin_Switch_Reserved15, - k_EInputActionOrigin_Switch_Reserved16, - k_EInputActionOrigin_Switch_Reserved17, - k_EInputActionOrigin_Switch_Reserved18, - k_EInputActionOrigin_Switch_Reserved19, - k_EInputActionOrigin_Switch_Reserved20, - - // Added in SDK 1.51 - k_EInputActionOrigin_PS5_X, - k_EInputActionOrigin_PS5_Circle, - k_EInputActionOrigin_PS5_Triangle, - k_EInputActionOrigin_PS5_Square, - k_EInputActionOrigin_PS5_LeftBumper, - k_EInputActionOrigin_PS5_RightBumper, - k_EInputActionOrigin_PS5_Option, //Start - k_EInputActionOrigin_PS5_Create, //Back - k_EInputActionOrigin_PS5_Mute, - k_EInputActionOrigin_PS5_LeftPad_Touch, - k_EInputActionOrigin_PS5_LeftPad_Swipe, - k_EInputActionOrigin_PS5_LeftPad_Click, - k_EInputActionOrigin_PS5_LeftPad_DPadNorth, - k_EInputActionOrigin_PS5_LeftPad_DPadSouth, - k_EInputActionOrigin_PS5_LeftPad_DPadWest, - k_EInputActionOrigin_PS5_LeftPad_DPadEast, - k_EInputActionOrigin_PS5_RightPad_Touch, - k_EInputActionOrigin_PS5_RightPad_Swipe, - k_EInputActionOrigin_PS5_RightPad_Click, - k_EInputActionOrigin_PS5_RightPad_DPadNorth, - k_EInputActionOrigin_PS5_RightPad_DPadSouth, - k_EInputActionOrigin_PS5_RightPad_DPadWest, - k_EInputActionOrigin_PS5_RightPad_DPadEast, - k_EInputActionOrigin_PS5_CenterPad_Touch, - k_EInputActionOrigin_PS5_CenterPad_Swipe, - k_EInputActionOrigin_PS5_CenterPad_Click, - k_EInputActionOrigin_PS5_CenterPad_DPadNorth, - k_EInputActionOrigin_PS5_CenterPad_DPadSouth, - k_EInputActionOrigin_PS5_CenterPad_DPadWest, - k_EInputActionOrigin_PS5_CenterPad_DPadEast, - k_EInputActionOrigin_PS5_LeftTrigger_Pull, - k_EInputActionOrigin_PS5_LeftTrigger_Click, - k_EInputActionOrigin_PS5_RightTrigger_Pull, - k_EInputActionOrigin_PS5_RightTrigger_Click, - k_EInputActionOrigin_PS5_LeftStick_Move, - k_EInputActionOrigin_PS5_LeftStick_Click, - k_EInputActionOrigin_PS5_LeftStick_DPadNorth, - k_EInputActionOrigin_PS5_LeftStick_DPadSouth, - k_EInputActionOrigin_PS5_LeftStick_DPadWest, - k_EInputActionOrigin_PS5_LeftStick_DPadEast, - k_EInputActionOrigin_PS5_RightStick_Move, - k_EInputActionOrigin_PS5_RightStick_Click, - k_EInputActionOrigin_PS5_RightStick_DPadNorth, - k_EInputActionOrigin_PS5_RightStick_DPadSouth, - k_EInputActionOrigin_PS5_RightStick_DPadWest, - k_EInputActionOrigin_PS5_RightStick_DPadEast, - k_EInputActionOrigin_PS5_DPad_North, - k_EInputActionOrigin_PS5_DPad_South, - k_EInputActionOrigin_PS5_DPad_West, - k_EInputActionOrigin_PS5_DPad_East, - k_EInputActionOrigin_PS5_Gyro_Move, - k_EInputActionOrigin_PS5_Gyro_Pitch, - k_EInputActionOrigin_PS5_Gyro_Yaw, - k_EInputActionOrigin_PS5_Gyro_Roll, - k_EInputActionOrigin_PS5_DPad_Move, - k_EInputActionOrigin_PS5_LeftGrip, - k_EInputActionOrigin_PS5_RightGrip, - k_EInputActionOrigin_PS5_LeftFn, - k_EInputActionOrigin_PS5_RightFn, - k_EInputActionOrigin_PS5_Reserved5, - k_EInputActionOrigin_PS5_Reserved6, - k_EInputActionOrigin_PS5_Reserved7, - k_EInputActionOrigin_PS5_Reserved8, - k_EInputActionOrigin_PS5_Reserved9, - k_EInputActionOrigin_PS5_Reserved10, - k_EInputActionOrigin_PS5_Reserved11, - k_EInputActionOrigin_PS5_Reserved12, - k_EInputActionOrigin_PS5_Reserved13, - k_EInputActionOrigin_PS5_Reserved14, - k_EInputActionOrigin_PS5_Reserved15, - k_EInputActionOrigin_PS5_Reserved16, - k_EInputActionOrigin_PS5_Reserved17, - k_EInputActionOrigin_PS5_Reserved18, - k_EInputActionOrigin_PS5_Reserved19, - k_EInputActionOrigin_PS5_Reserved20, - - // Added in SDK 1.53 - k_EInputActionOrigin_SteamDeck_A, - k_EInputActionOrigin_SteamDeck_B, - k_EInputActionOrigin_SteamDeck_X, - k_EInputActionOrigin_SteamDeck_Y, - k_EInputActionOrigin_SteamDeck_L1, - k_EInputActionOrigin_SteamDeck_R1, - k_EInputActionOrigin_SteamDeck_Menu, - k_EInputActionOrigin_SteamDeck_View, - k_EInputActionOrigin_SteamDeck_LeftPad_Touch, - k_EInputActionOrigin_SteamDeck_LeftPad_Swipe, - k_EInputActionOrigin_SteamDeck_LeftPad_Click, - k_EInputActionOrigin_SteamDeck_LeftPad_DPadNorth, - k_EInputActionOrigin_SteamDeck_LeftPad_DPadSouth, - k_EInputActionOrigin_SteamDeck_LeftPad_DPadWest, - k_EInputActionOrigin_SteamDeck_LeftPad_DPadEast, - k_EInputActionOrigin_SteamDeck_RightPad_Touch, - k_EInputActionOrigin_SteamDeck_RightPad_Swipe, - k_EInputActionOrigin_SteamDeck_RightPad_Click, - k_EInputActionOrigin_SteamDeck_RightPad_DPadNorth, - k_EInputActionOrigin_SteamDeck_RightPad_DPadSouth, - k_EInputActionOrigin_SteamDeck_RightPad_DPadWest, - k_EInputActionOrigin_SteamDeck_RightPad_DPadEast, - k_EInputActionOrigin_SteamDeck_L2_SoftPull, - k_EInputActionOrigin_SteamDeck_L2, - k_EInputActionOrigin_SteamDeck_R2_SoftPull, - k_EInputActionOrigin_SteamDeck_R2, - k_EInputActionOrigin_SteamDeck_LeftStick_Move, - k_EInputActionOrigin_SteamDeck_L3, - k_EInputActionOrigin_SteamDeck_LeftStick_DPadNorth, - k_EInputActionOrigin_SteamDeck_LeftStick_DPadSouth, - k_EInputActionOrigin_SteamDeck_LeftStick_DPadWest, - k_EInputActionOrigin_SteamDeck_LeftStick_DPadEast, - k_EInputActionOrigin_SteamDeck_LeftStick_Touch, - k_EInputActionOrigin_SteamDeck_RightStick_Move, - k_EInputActionOrigin_SteamDeck_R3, - k_EInputActionOrigin_SteamDeck_RightStick_DPadNorth, - k_EInputActionOrigin_SteamDeck_RightStick_DPadSouth, - k_EInputActionOrigin_SteamDeck_RightStick_DPadWest, - k_EInputActionOrigin_SteamDeck_RightStick_DPadEast, - k_EInputActionOrigin_SteamDeck_RightStick_Touch, - k_EInputActionOrigin_SteamDeck_L4, - k_EInputActionOrigin_SteamDeck_R4, - k_EInputActionOrigin_SteamDeck_L5, - k_EInputActionOrigin_SteamDeck_R5, - k_EInputActionOrigin_SteamDeck_DPad_Move, - k_EInputActionOrigin_SteamDeck_DPad_North, - k_EInputActionOrigin_SteamDeck_DPad_South, - k_EInputActionOrigin_SteamDeck_DPad_West, - k_EInputActionOrigin_SteamDeck_DPad_East, - k_EInputActionOrigin_SteamDeck_Gyro_Move, - k_EInputActionOrigin_SteamDeck_Gyro_Pitch, - k_EInputActionOrigin_SteamDeck_Gyro_Yaw, - k_EInputActionOrigin_SteamDeck_Gyro_Roll, - k_EInputActionOrigin_SteamDeck_Reserved1, - k_EInputActionOrigin_SteamDeck_Reserved2, - k_EInputActionOrigin_SteamDeck_Reserved3, - k_EInputActionOrigin_SteamDeck_Reserved4, - k_EInputActionOrigin_SteamDeck_Reserved5, - k_EInputActionOrigin_SteamDeck_Reserved6, - k_EInputActionOrigin_SteamDeck_Reserved7, - k_EInputActionOrigin_SteamDeck_Reserved8, - k_EInputActionOrigin_SteamDeck_Reserved9, - k_EInputActionOrigin_SteamDeck_Reserved10, - k_EInputActionOrigin_SteamDeck_Reserved11, - k_EInputActionOrigin_SteamDeck_Reserved12, - k_EInputActionOrigin_SteamDeck_Reserved13, - k_EInputActionOrigin_SteamDeck_Reserved14, - k_EInputActionOrigin_SteamDeck_Reserved15, - k_EInputActionOrigin_SteamDeck_Reserved16, - k_EInputActionOrigin_SteamDeck_Reserved17, - k_EInputActionOrigin_SteamDeck_Reserved18, - k_EInputActionOrigin_SteamDeck_Reserved19, - k_EInputActionOrigin_SteamDeck_Reserved20, - - k_EInputActionOrigin_Count, // If Steam has added support for new controllers origins will go here. - k_EInputActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits. - } - - public enum EXboxOrigin : int { - k_EXboxOrigin_A, - k_EXboxOrigin_B, - k_EXboxOrigin_X, - k_EXboxOrigin_Y, - k_EXboxOrigin_LeftBumper, - k_EXboxOrigin_RightBumper, - k_EXboxOrigin_Menu, //Start - k_EXboxOrigin_View, //Back - k_EXboxOrigin_LeftTrigger_Pull, - k_EXboxOrigin_LeftTrigger_Click, - k_EXboxOrigin_RightTrigger_Pull, - k_EXboxOrigin_RightTrigger_Click, - k_EXboxOrigin_LeftStick_Move, - k_EXboxOrigin_LeftStick_Click, - k_EXboxOrigin_LeftStick_DPadNorth, - k_EXboxOrigin_LeftStick_DPadSouth, - k_EXboxOrigin_LeftStick_DPadWest, - k_EXboxOrigin_LeftStick_DPadEast, - k_EXboxOrigin_RightStick_Move, - k_EXboxOrigin_RightStick_Click, - k_EXboxOrigin_RightStick_DPadNorth, - k_EXboxOrigin_RightStick_DPadSouth, - k_EXboxOrigin_RightStick_DPadWest, - k_EXboxOrigin_RightStick_DPadEast, - k_EXboxOrigin_DPad_North, - k_EXboxOrigin_DPad_South, - k_EXboxOrigin_DPad_West, - k_EXboxOrigin_DPad_East, - k_EXboxOrigin_Count, - } - - public enum ESteamControllerPad : int { - k_ESteamControllerPad_Left, - k_ESteamControllerPad_Right - } - - [Flags] - public enum EControllerHapticLocation : int { - k_EControllerHapticLocation_Left = ( 1 << ESteamControllerPad.k_ESteamControllerPad_Left ), - k_EControllerHapticLocation_Right = ( 1 << ESteamControllerPad.k_ESteamControllerPad_Right ), - k_EControllerHapticLocation_Both = ( 1 << ESteamControllerPad.k_ESteamControllerPad_Left | 1 << ESteamControllerPad.k_ESteamControllerPad_Right ), - } - - public enum EControllerHapticType : int { - k_EControllerHapticType_Off, - k_EControllerHapticType_Tick, - k_EControllerHapticType_Click, - } - - public enum ESteamInputType : int { - k_ESteamInputType_Unknown, - k_ESteamInputType_SteamController, - k_ESteamInputType_XBox360Controller, - k_ESteamInputType_XBoxOneController, - k_ESteamInputType_GenericGamepad, // DirectInput controllers - k_ESteamInputType_PS4Controller, - k_ESteamInputType_AppleMFiController, // Unused - k_ESteamInputType_AndroidController, // Unused - k_ESteamInputType_SwitchJoyConPair, // Unused - k_ESteamInputType_SwitchJoyConSingle, // Unused - k_ESteamInputType_SwitchProController, - k_ESteamInputType_MobileTouch, // Steam Link App On-screen Virtual Controller - k_ESteamInputType_PS3Controller, // Currently uses PS4 Origins - k_ESteamInputType_PS5Controller, // Added in SDK 151 - k_ESteamInputType_SteamDeckController, // Added in SDK 153 - k_ESteamInputType_Count, - k_ESteamInputType_MaximumPossibleValue = 255, - } - - // Individual values are used by the GetSessionInputConfigurationSettings bitmask - public enum ESteamInputConfigurationEnableType : int { - k_ESteamInputConfigurationEnableType_None = 0x0000, - k_ESteamInputConfigurationEnableType_Playstation = 0x0001, - k_ESteamInputConfigurationEnableType_Xbox = 0x0002, - k_ESteamInputConfigurationEnableType_Generic = 0x0004, - k_ESteamInputConfigurationEnableType_Switch = 0x0008, - } - - // These values are passed into SetLEDColor - public enum ESteamInputLEDFlag : int { - k_ESteamInputLEDFlag_SetColor, - // Restore the LED color to the user's preference setting as set in the controller personalization menu. - // This also happens automatically on exit of your game. - k_ESteamInputLEDFlag_RestoreUserDefault - } - - // These values are passed into GetGlyphPNGForActionOrigin - public enum ESteamInputGlyphSize : int { - k_ESteamInputGlyphSize_Small, // 32x32 pixels - k_ESteamInputGlyphSize_Medium, // 128x128 pixels - k_ESteamInputGlyphSize_Large, // 256x256 pixels - k_ESteamInputGlyphSize_Count, - } - - public enum ESteamInputGlyphStyle : int { - // Base-styles - cannot mix - ESteamInputGlyphStyle_Knockout = 0x0, // Face buttons will have colored labels/outlines on a knocked out background - // Rest of inputs will have white detail/borders on a knocked out background - ESteamInputGlyphStyle_Light = 0x1, // Black detail/borders on a white background - ESteamInputGlyphStyle_Dark = 0x2, // White detail/borders on a black background - - // Modifiers - // Default ABXY/PS equivalent glyphs have a solid fill w/ color matching the physical buttons on the device - ESteamInputGlyphStyle_NeutralColorABXY = 0x10, // ABXY Buttons will match the base style color instead of their normal associated color - ESteamInputGlyphStyle_SolidABXY = 0x20, // ABXY Buttons will have a solid fill - } - - public enum ESteamInputActionEventType : int { - ESteamInputActionEventType_DigitalAction, - ESteamInputActionEventType_AnalogAction, - } - - [Flags] - public enum ESteamItemFlags : int { - // Item status flags - these flags are permanently attached to specific item instances - k_ESteamItemNoTrade = 1 << 0, // This item is account-locked and cannot be traded or given away. - - // Action confirmation flags - these flags are set one time only, as part of a result set - k_ESteamItemRemoved = 1 << 8, // The item has been destroyed, traded away, expired, or otherwise invalidated - k_ESteamItemConsumed = 1 << 9, // The item quantity has been decreased by 1 via ConsumeItem API. - - // All other flag bits are currently reserved for internal Steam use at this time. - // Do not assume anything about the state of other flags which are not defined here. - } - - // lobby type description - public enum ELobbyType : int { - k_ELobbyTypePrivate = 0, // only way to join the lobby is to invite to someone else - k_ELobbyTypeFriendsOnly = 1, // shows for friends or invitees, but not in lobby list - k_ELobbyTypePublic = 2, // visible for friends and in lobby list - k_ELobbyTypeInvisible = 3, // returned by search, but not visible to other friends - // useful if you want a user in two lobbies, for example matching groups together - // a user can be in only one regular lobby, and up to two invisible lobbies - k_ELobbyTypePrivateUnique = 4, // private, unique and does not delete when empty - only one of these may exist per unique keypair set - // can only create from webapi - } - - // lobby search filter tools - public enum ELobbyComparison : int { - k_ELobbyComparisonEqualToOrLessThan = -2, - k_ELobbyComparisonLessThan = -1, - k_ELobbyComparisonEqual = 0, - k_ELobbyComparisonGreaterThan = 1, - k_ELobbyComparisonEqualToOrGreaterThan = 2, - k_ELobbyComparisonNotEqual = 3, - } - - // lobby search distance. Lobby results are sorted from closest to farthest. - public enum ELobbyDistanceFilter : int { - k_ELobbyDistanceFilterClose, // only lobbies in the same immediate region will be returned - k_ELobbyDistanceFilterDefault, // only lobbies in the same region or near by regions - k_ELobbyDistanceFilterFar, // for games that don't have many latency requirements, will return lobbies about half-way around the globe - k_ELobbyDistanceFilterWorldwide, // no filtering, will match lobbies as far as India to NY (not recommended, expect multiple seconds of latency between the clients) - } - - //----------------------------------------------------------------------------- - // Purpose: Used in ChatInfo messages - fields specific to a chat member - must fit in a uint32 - //----------------------------------------------------------------------------- - [Flags] - public enum EChatMemberStateChange : int { - // Specific to joining / leaving the chatroom - k_EChatMemberStateChangeEntered = 0x0001, // This user has joined or is joining the chat room - k_EChatMemberStateChangeLeft = 0x0002, // This user has left or is leaving the chat room - k_EChatMemberStateChangeDisconnected = 0x0004, // User disconnected without leaving the chat first - k_EChatMemberStateChangeKicked = 0x0008, // User kicked - k_EChatMemberStateChangeBanned = 0x0010, // User kicked and banned - } - - //----------------------------------------------------------------------------- - // Purpose: Functions for quickly creating a Party with friends or acquaintances, - // EG from chat rooms. - //----------------------------------------------------------------------------- - public enum ESteamPartyBeaconLocationType : int { - k_ESteamPartyBeaconLocationType_Invalid = 0, - k_ESteamPartyBeaconLocationType_ChatGroup = 1, - - k_ESteamPartyBeaconLocationType_Max, - } - - public enum ESteamPartyBeaconLocationData : int { - k_ESteamPartyBeaconLocationDataInvalid = 0, - k_ESteamPartyBeaconLocationDataName = 1, - k_ESteamPartyBeaconLocationDataIconURLSmall = 2, - k_ESteamPartyBeaconLocationDataIconURLMedium = 3, - k_ESteamPartyBeaconLocationDataIconURLLarge = 4, - } - - public enum PlayerAcceptState_t : int { - k_EStateUnknown = 0, - k_EStatePlayerAccepted = 1, - k_EStatePlayerDeclined = 2, - } - - //----------------------------------------------------------------------------- - // Purpose: - //----------------------------------------------------------------------------- - public enum AudioPlayback_Status : int { - AudioPlayback_Undefined = 0, - AudioPlayback_Playing = 1, - AudioPlayback_Paused = 2, - AudioPlayback_Idle = 3 - } - - // list of possible errors returned by SendP2PPacket() API - // these will be posted in the P2PSessionConnectFail_t callback - public enum EP2PSessionError : int { - k_EP2PSessionErrorNone = 0, - k_EP2PSessionErrorNoRightsToApp = 2, // local user doesn't own the app that is running - k_EP2PSessionErrorTimeout = 4, // target isn't responding, perhaps not calling AcceptP2PSessionWithUser() - // corporate firewalls can also block this (NAT traversal is not firewall traversal) - // make sure that UDP ports 3478, 4379, and 4380 are open in an outbound direction - - // The following error codes were removed and will never be sent. - // For privacy reasons, there is no reply if the user is offline or playing another game. - k_EP2PSessionErrorNotRunningApp_DELETED = 1, - k_EP2PSessionErrorDestinationNotLoggedIn_DELETED = 3, - - k_EP2PSessionErrorMax = 5 - } - - // SendP2PPacket() send types - // Typically k_EP2PSendUnreliable is what you want for UDP-like packets, k_EP2PSendReliable for TCP-like packets - public enum EP2PSend : int { - // Basic UDP send. Packets can't be bigger than 1200 bytes (your typical MTU size). Can be lost, or arrive out of order (rare). - // The sending API does have some knowledge of the underlying connection, so if there is no NAT-traversal accomplished or - // there is a recognized adjustment happening on the connection, the packet will be batched until the connection is open again. - k_EP2PSendUnreliable = 0, - - // As above, but if the underlying p2p connection isn't yet established the packet will just be thrown away. Using this on the first - // packet sent to a remote host almost guarantees the packet will be dropped. - // This is only really useful for kinds of data that should never buffer up, i.e. voice payload packets - k_EP2PSendUnreliableNoDelay = 1, - - // Reliable message send. Can send up to 1MB of data in a single message. - // Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for efficient sends of large chunks of data. - k_EP2PSendReliable = 2, - - // As above, but applies the Nagle algorithm to the send - sends will accumulate - // until the current MTU size (typically ~1200 bytes, but can change) or ~200ms has passed (Nagle algorithm). - // Useful if you want to send a set of smaller messages but have the coalesced into a single packet - // Since the reliable stream is all ordered, you can do several small message sends with k_EP2PSendReliableWithBuffering and then - // do a normal k_EP2PSendReliable to force all the buffered data to be sent. - k_EP2PSendReliableWithBuffering = 3, - - } - - // connection progress indicators, used by CreateP2PConnectionSocket() - public enum ESNetSocketState : int { - k_ESNetSocketStateInvalid = 0, - - // communication is valid - k_ESNetSocketStateConnected = 1, - - // states while establishing a connection - k_ESNetSocketStateInitiated = 10, // the connection state machine has started - - // p2p connections - k_ESNetSocketStateLocalCandidatesFound = 11, // we've found our local IP info - k_ESNetSocketStateReceivedRemoteCandidates = 12,// we've received information from the remote machine, via the Steam back-end, about their IP info - - // direct connections - k_ESNetSocketStateChallengeHandshake = 15, // we've received a challenge packet from the server - - // failure states - k_ESNetSocketStateDisconnecting = 21, // the API shut it down, and we're in the process of telling the other end - k_ESNetSocketStateLocalDisconnect = 22, // the API shut it down, and we've completed shutdown - k_ESNetSocketStateTimeoutDuringConnect = 23, // we timed out while trying to creating the connection - k_ESNetSocketStateRemoteEndDisconnected = 24, // the remote end has disconnected from us - k_ESNetSocketStateConnectionBroken = 25, // connection has been broken; either the other end has disappeared or our local network connection has broke - - } - - // describes how the socket is currently connected - public enum ESNetSocketConnectionType : int { - k_ESNetSocketConnectionTypeNotConnected = 0, - k_ESNetSocketConnectionTypeUDP = 1, - k_ESNetSocketConnectionTypeUDPRelay = 2, - } - - // Feature types for parental settings - public enum EParentalFeature : int { - k_EFeatureInvalid = 0, - k_EFeatureStore = 1, - k_EFeatureCommunity = 2, - k_EFeatureProfile = 3, - k_EFeatureFriends = 4, - k_EFeatureNews = 5, - k_EFeatureTrading = 6, - k_EFeatureSettings = 7, - k_EFeatureConsole = 8, - k_EFeatureBrowser = 9, - k_EFeatureParentalSetup = 10, - k_EFeatureLibrary = 11, - k_EFeatureTest = 12, - k_EFeatureSiteLicense = 13, - k_EFeatureKioskMode = 14, - k_EFeatureMax - } - - //----------------------------------------------------------------------------- - // Purpose: The form factor of a device - //----------------------------------------------------------------------------- - public enum ESteamDeviceFormFactor : int { - k_ESteamDeviceFormFactorUnknown = 0, - k_ESteamDeviceFormFactorPhone = 1, - k_ESteamDeviceFormFactorTablet = 2, - k_ESteamDeviceFormFactorComputer = 3, - k_ESteamDeviceFormFactorTV = 4, - } - - [Flags] - public enum ERemoteStoragePlatform : int { - k_ERemoteStoragePlatformNone = 0, - k_ERemoteStoragePlatformWindows = (1 << 0), - k_ERemoteStoragePlatformOSX = (1 << 1), - k_ERemoteStoragePlatformPS3 = (1 << 2), - k_ERemoteStoragePlatformLinux = (1 << 3), - k_ERemoteStoragePlatformSwitch = (1 << 4), - k_ERemoteStoragePlatformAndroid = (1 << 5), - k_ERemoteStoragePlatformIOS = (1 << 6), - // NB we get one more before we need to widen some things - - k_ERemoteStoragePlatformAll = -1 - } - - public enum ERemoteStoragePublishedFileVisibility : int { - k_ERemoteStoragePublishedFileVisibilityPublic = 0, - k_ERemoteStoragePublishedFileVisibilityFriendsOnly = 1, - k_ERemoteStoragePublishedFileVisibilityPrivate = 2, - k_ERemoteStoragePublishedFileVisibilityUnlisted = 3, - } - - public enum EWorkshopFileType : int { - k_EWorkshopFileTypeFirst = 0, - - k_EWorkshopFileTypeCommunity = 0, // normal Workshop item that can be subscribed to - k_EWorkshopFileTypeMicrotransaction = 1, // Workshop item that is meant to be voted on for the purpose of selling in-game - k_EWorkshopFileTypeCollection = 2, // a collection of Workshop or Greenlight items - k_EWorkshopFileTypeArt = 3, // artwork - k_EWorkshopFileTypeVideo = 4, // external video - k_EWorkshopFileTypeScreenshot = 5, // screenshot - k_EWorkshopFileTypeGame = 6, // Greenlight game entry - k_EWorkshopFileTypeSoftware = 7, // Greenlight software entry - k_EWorkshopFileTypeConcept = 8, // Greenlight concept - k_EWorkshopFileTypeWebGuide = 9, // Steam web guide - k_EWorkshopFileTypeIntegratedGuide = 10, // application integrated guide - k_EWorkshopFileTypeMerch = 11, // Workshop merchandise meant to be voted on for the purpose of being sold - k_EWorkshopFileTypeControllerBinding = 12, // Steam Controller bindings - k_EWorkshopFileTypeSteamworksAccessInvite = 13, // internal - k_EWorkshopFileTypeSteamVideo = 14, // Steam video - k_EWorkshopFileTypeGameManagedItem = 15, // managed completely by the game, not the user, and not shown on the web - - // Update k_EWorkshopFileTypeMax if you add values. - k_EWorkshopFileTypeMax = 16 - - } - - public enum EWorkshopVote : int { - k_EWorkshopVoteUnvoted = 0, - k_EWorkshopVoteFor = 1, - k_EWorkshopVoteAgainst = 2, - k_EWorkshopVoteLater = 3, - } - - public enum EWorkshopFileAction : int { - k_EWorkshopFileActionPlayed = 0, - k_EWorkshopFileActionCompleted = 1, - } - - public enum EWorkshopEnumerationType : int { - k_EWorkshopEnumerationTypeRankedByVote = 0, - k_EWorkshopEnumerationTypeRecent = 1, - k_EWorkshopEnumerationTypeTrending = 2, - k_EWorkshopEnumerationTypeFavoritesOfFriends = 3, - k_EWorkshopEnumerationTypeVotedByFriends = 4, - k_EWorkshopEnumerationTypeContentByFriends = 5, - k_EWorkshopEnumerationTypeRecentFromFollowedUsers = 6, - } - - public enum EWorkshopVideoProvider : int { - k_EWorkshopVideoProviderNone = 0, - k_EWorkshopVideoProviderYoutube = 1 - } - - public enum EUGCReadAction : int { - // Keeps the file handle open unless the last byte is read. You can use this when reading large files (over 100MB) in sequential chunks. - // If the last byte is read, this will behave the same as k_EUGCRead_Close. Otherwise, it behaves the same as k_EUGCRead_ContinueReading. - // This value maintains the same behavior as before the EUGCReadAction parameter was introduced. - k_EUGCRead_ContinueReadingUntilFinished = 0, - - // Keeps the file handle open. Use this when using UGCRead to seek to different parts of the file. - // When you are done seeking around the file, make a final call with k_EUGCRead_Close to close it. - k_EUGCRead_ContinueReading = 1, - - // Frees the file handle. Use this when you're done reading the content. - // To read the file from Steam again you will need to call UGCDownload again. - k_EUGCRead_Close = 2, - } - - public enum ERemoteStorageLocalFileChange : int { - k_ERemoteStorageLocalFileChange_Invalid = 0, - - // The file was updated from another device - k_ERemoteStorageLocalFileChange_FileUpdated = 1, - - // The file was deleted by another device - k_ERemoteStorageLocalFileChange_FileDeleted = 2, - } - - public enum ERemoteStorageFilePathType : int { - k_ERemoteStorageFilePathType_Invalid = 0, - - // The file is directly accessed by the game and this is the full path - k_ERemoteStorageFilePathType_Absolute = 1, - - // The file is accessed via the ISteamRemoteStorage API and this is the filename - k_ERemoteStorageFilePathType_APIFilename = 2, - } - - public enum EVRScreenshotType : int { - k_EVRScreenshotType_None = 0, - k_EVRScreenshotType_Mono = 1, - k_EVRScreenshotType_Stereo = 2, - k_EVRScreenshotType_MonoCubemap = 3, - k_EVRScreenshotType_MonoPanorama = 4, - k_EVRScreenshotType_StereoPanorama = 5 - } - - // Matching UGC types for queries - public enum EUGCMatchingUGCType : int { - k_EUGCMatchingUGCType_Items = 0, // both mtx items and ready-to-use items - k_EUGCMatchingUGCType_Items_Mtx = 1, - k_EUGCMatchingUGCType_Items_ReadyToUse = 2, - k_EUGCMatchingUGCType_Collections = 3, - k_EUGCMatchingUGCType_Artwork = 4, - k_EUGCMatchingUGCType_Videos = 5, - k_EUGCMatchingUGCType_Screenshots = 6, - k_EUGCMatchingUGCType_AllGuides = 7, // both web guides and integrated guides - k_EUGCMatchingUGCType_WebGuides = 8, - k_EUGCMatchingUGCType_IntegratedGuides = 9, - k_EUGCMatchingUGCType_UsableInGame = 10, // ready-to-use items and integrated guides - k_EUGCMatchingUGCType_ControllerBindings = 11, - k_EUGCMatchingUGCType_GameManagedItems = 12, // game managed items (not managed by users) - k_EUGCMatchingUGCType_All = ~0, // @note: will only be valid for CreateQueryUserUGCRequest requests - } - - // Different lists of published UGC for a user. - // If the current logged in user is different than the specified user, then some options may not be allowed. - public enum EUserUGCList : int { - k_EUserUGCList_Published, - k_EUserUGCList_VotedOn, - k_EUserUGCList_VotedUp, - k_EUserUGCList_VotedDown, - k_EUserUGCList_WillVoteLater, - k_EUserUGCList_Favorited, - k_EUserUGCList_Subscribed, - k_EUserUGCList_UsedOrPlayed, - k_EUserUGCList_Followed, - } - - // Sort order for user published UGC lists (defaults to creation order descending) - public enum EUserUGCListSortOrder : int { - k_EUserUGCListSortOrder_CreationOrderDesc, - k_EUserUGCListSortOrder_CreationOrderAsc, - k_EUserUGCListSortOrder_TitleAsc, - k_EUserUGCListSortOrder_LastUpdatedDesc, - k_EUserUGCListSortOrder_SubscriptionDateDesc, - k_EUserUGCListSortOrder_VoteScoreDesc, - k_EUserUGCListSortOrder_ForModeration, - } - - // Combination of sorting and filtering for queries across all UGC - public enum EUGCQuery : int { - k_EUGCQuery_RankedByVote = 0, - k_EUGCQuery_RankedByPublicationDate = 1, - k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate = 2, - k_EUGCQuery_RankedByTrend = 3, - k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate = 4, - k_EUGCQuery_CreatedByFriendsRankedByPublicationDate = 5, - k_EUGCQuery_RankedByNumTimesReported = 6, - k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate = 7, - k_EUGCQuery_NotYetRated = 8, - k_EUGCQuery_RankedByTotalVotesAsc = 9, - k_EUGCQuery_RankedByVotesUp = 10, - k_EUGCQuery_RankedByTextSearch = 11, - k_EUGCQuery_RankedByTotalUniqueSubscriptions = 12, - k_EUGCQuery_RankedByPlaytimeTrend = 13, - k_EUGCQuery_RankedByTotalPlaytime = 14, - k_EUGCQuery_RankedByAveragePlaytimeTrend = 15, - k_EUGCQuery_RankedByLifetimeAveragePlaytime = 16, - k_EUGCQuery_RankedByPlaytimeSessionsTrend = 17, - k_EUGCQuery_RankedByLifetimePlaytimeSessions = 18, - k_EUGCQuery_RankedByLastUpdatedDate = 19, - } - - public enum EItemUpdateStatus : int { - k_EItemUpdateStatusInvalid = 0, // The item update handle was invalid, job might be finished, listen too SubmitItemUpdateResult_t - k_EItemUpdateStatusPreparingConfig = 1, // The item update is processing configuration data - k_EItemUpdateStatusPreparingContent = 2, // The item update is reading and processing content files - k_EItemUpdateStatusUploadingContent = 3, // The item update is uploading content changes to Steam - k_EItemUpdateStatusUploadingPreviewFile = 4, // The item update is uploading new preview file image - k_EItemUpdateStatusCommittingChanges = 5 // The item update is committing all changes - } - - [Flags] - public enum EItemState : int { - k_EItemStateNone = 0, // item not tracked on client - k_EItemStateSubscribed = 1, // current user is subscribed to this item. Not just cached. - k_EItemStateLegacyItem = 2, // item was created with ISteamRemoteStorage - k_EItemStateInstalled = 4, // item is installed and usable (but maybe out of date) - k_EItemStateNeedsUpdate = 8, // items needs an update. Either because it's not installed yet or creator updated content - k_EItemStateDownloading = 16, // item update is currently downloading - k_EItemStateDownloadPending = 32, // DownloadItem() was called for this item, content isn't available until DownloadItemResult_t is fired - } - - public enum EItemStatistic : int { - k_EItemStatistic_NumSubscriptions = 0, - k_EItemStatistic_NumFavorites = 1, - k_EItemStatistic_NumFollowers = 2, - k_EItemStatistic_NumUniqueSubscriptions = 3, - k_EItemStatistic_NumUniqueFavorites = 4, - k_EItemStatistic_NumUniqueFollowers = 5, - k_EItemStatistic_NumUniqueWebsiteViews = 6, - k_EItemStatistic_ReportScore = 7, - k_EItemStatistic_NumSecondsPlayed = 8, - k_EItemStatistic_NumPlaytimeSessions = 9, - k_EItemStatistic_NumComments = 10, - k_EItemStatistic_NumSecondsPlayedDuringTimePeriod = 11, - k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod = 12, - } - - public enum EItemPreviewType : int { - k_EItemPreviewType_Image = 0, // standard image file expected (e.g. jpg, png, gif, etc.) - k_EItemPreviewType_YouTubeVideo = 1, // video id is stored - k_EItemPreviewType_Sketchfab = 2, // model id is stored - k_EItemPreviewType_EnvironmentMap_HorizontalCross = 3, // standard image file expected - cube map in the layout - // +---+---+-------+ - // | |Up | | - // +---+---+---+---+ - // | L | F | R | B | - // +---+---+---+---+ - // | |Dn | | - // +---+---+---+---+ - k_EItemPreviewType_EnvironmentMap_LatLong = 4, // standard image file expected - k_EItemPreviewType_ReservedMax = 255, // you can specify your own types above this value - } - - public enum EUGCContentDescriptorID : int { - k_EUGCContentDescriptor_NudityOrSexualContent = 1, - k_EUGCContentDescriptor_FrequentViolenceOrGore = 2, - k_EUGCContentDescriptor_AdultOnlySexualContent = 3, - k_EUGCContentDescriptor_GratuitousSexualContent = 4, - k_EUGCContentDescriptor_AnyMatureContent = 5, - } - - public enum EFailureType : int { - k_EFailureFlushedCallbackQueue, - k_EFailurePipeFail, - } - - // type of data request, when downloading leaderboard entries - public enum ELeaderboardDataRequest : int { - k_ELeaderboardDataRequestGlobal = 0, - k_ELeaderboardDataRequestGlobalAroundUser = 1, - k_ELeaderboardDataRequestFriends = 2, - k_ELeaderboardDataRequestUsers = 3 - } - - // the sort order of a leaderboard - public enum ELeaderboardSortMethod : int { - k_ELeaderboardSortMethodNone = 0, - k_ELeaderboardSortMethodAscending = 1, // top-score is lowest number - k_ELeaderboardSortMethodDescending = 2, // top-score is highest number - } - - // the display type (used by the Steam Community web site) for a leaderboard - public enum ELeaderboardDisplayType : int { - k_ELeaderboardDisplayTypeNone = 0, - k_ELeaderboardDisplayTypeNumeric = 1, // simple numerical score - k_ELeaderboardDisplayTypeTimeSeconds = 2, // the score represents a time, in seconds - k_ELeaderboardDisplayTypeTimeMilliSeconds = 3, // the score represents a time, in milliseconds - } - - public enum ELeaderboardUploadScoreMethod : int { - k_ELeaderboardUploadScoreMethodNone = 0, - k_ELeaderboardUploadScoreMethodKeepBest = 1, // Leaderboard will keep user's best score - k_ELeaderboardUploadScoreMethodForceUpdate = 2, // Leaderboard will always replace score with specified - } - - // Steam API call failure results - public enum ESteamAPICallFailure : int { - k_ESteamAPICallFailureNone = -1, // no failure - k_ESteamAPICallFailureSteamGone = 0, // the local Steam process has gone away - k_ESteamAPICallFailureNetworkFailure = 1, // the network connection to Steam has been broken, or was already broken - // SteamServersDisconnected_t callback will be sent around the same time - // SteamServersConnected_t will be sent when the client is able to talk to the Steam servers again - k_ESteamAPICallFailureInvalidHandle = 2, // the SteamAPICall_t handle passed in no longer exists - k_ESteamAPICallFailureMismatchedCallback = 3,// GetAPICallResult() was called with the wrong callback type for this API call - } - - // Input modes for the Big Picture gamepad text entry - public enum EGamepadTextInputMode : int { - k_EGamepadTextInputModeNormal = 0, - k_EGamepadTextInputModePassword = 1 - } - - // Controls number of allowed lines for the Big Picture gamepad text entry - public enum EGamepadTextInputLineMode : int { - k_EGamepadTextInputLineModeSingleLine = 0, - k_EGamepadTextInputLineModeMultipleLines = 1 - } - - public enum EFloatingGamepadTextInputMode : int { - k_EFloatingGamepadTextInputModeModeSingleLine = 0, // Enter dismisses the keyboard - k_EFloatingGamepadTextInputModeModeMultipleLines = 1, // User needs to explictly close the keyboard - k_EFloatingGamepadTextInputModeModeEmail = 2, // Keyboard layout is email, enter dismisses the keyboard - k_EFloatingGamepadTextInputModeModeNumeric = 3, // Keyboard layout is numeric, enter dismisses the keyboard - - } - - // The context where text filtering is being done - public enum ETextFilteringContext : int { - k_ETextFilteringContextUnknown = 0, // Unknown context - k_ETextFilteringContextGameContent = 1, // Game content, only legally required filtering is performed - k_ETextFilteringContextChat = 2, // Chat from another player - k_ETextFilteringContextName = 3, // Character or item name - } - - //----------------------------------------------------------------------------- - // results for CheckFileSignature - //----------------------------------------------------------------------------- - public enum ECheckFileSignature : int { - k_ECheckFileSignatureInvalidSignature = 0, - k_ECheckFileSignatureValidSignature = 1, - k_ECheckFileSignatureFileNotFound = 2, - k_ECheckFileSignatureNoSignaturesFoundForThisApp = 3, - k_ECheckFileSignatureNoSignaturesFoundForThisFile = 4, - } - - public enum EMatchMakingServerResponse : int { - eServerResponded = 0, - eServerFailedToRespond, - eNoServersListedOnMasterServer // for the Internet query type, returned in response callback if no servers of this type match - } - - public enum EServerMode : int { - eServerModeInvalid = 0, // DO NOT USE - eServerModeNoAuthentication = 1, // Don't authenticate user logins and don't list on the server list - eServerModeAuthentication = 2, // Authenticate users, list on the server list, don't run VAC on clients that connect - eServerModeAuthenticationAndSecure = 3, // Authenticate users, list on the server list and VAC protect clients - } - - // General result codes - public enum EResult : int { - k_EResultNone = 0, // no result - k_EResultOK = 1, // success - k_EResultFail = 2, // generic failure - k_EResultNoConnection = 3, // no/failed network connection - // k_EResultNoConnectionRetry = 4, // OBSOLETE - removed - k_EResultInvalidPassword = 5, // password/ticket is invalid - k_EResultLoggedInElsewhere = 6, // same user logged in elsewhere - k_EResultInvalidProtocolVer = 7, // protocol version is incorrect - k_EResultInvalidParam = 8, // a parameter is incorrect - k_EResultFileNotFound = 9, // file was not found - k_EResultBusy = 10, // called method busy - action not taken - k_EResultInvalidState = 11, // called object was in an invalid state - k_EResultInvalidName = 12, // name is invalid - k_EResultInvalidEmail = 13, // email is invalid - k_EResultDuplicateName = 14, // name is not unique - k_EResultAccessDenied = 15, // access is denied - k_EResultTimeout = 16, // operation timed out - k_EResultBanned = 17, // VAC2 banned - k_EResultAccountNotFound = 18, // account not found - k_EResultInvalidSteamID = 19, // steamID is invalid - k_EResultServiceUnavailable = 20, // The requested service is currently unavailable - k_EResultNotLoggedOn = 21, // The user is not logged on - k_EResultPending = 22, // Request is pending (may be in process, or waiting on third party) - k_EResultEncryptionFailure = 23, // Encryption or Decryption failed - k_EResultInsufficientPrivilege = 24, // Insufficient privilege - k_EResultLimitExceeded = 25, // Too much of a good thing - k_EResultRevoked = 26, // Access has been revoked (used for revoked guest passes) - k_EResultExpired = 27, // License/Guest pass the user is trying to access is expired - k_EResultAlreadyRedeemed = 28, // Guest pass has already been redeemed by account, cannot be acked again - k_EResultDuplicateRequest = 29, // The request is a duplicate and the action has already occurred in the past, ignored this time - k_EResultAlreadyOwned = 30, // All the games in this guest pass redemption request are already owned by the user - k_EResultIPNotFound = 31, // IP address not found - k_EResultPersistFailed = 32, // failed to write change to the data store - k_EResultLockingFailed = 33, // failed to acquire access lock for this operation - k_EResultLogonSessionReplaced = 34, - k_EResultConnectFailed = 35, - k_EResultHandshakeFailed = 36, - k_EResultIOFailure = 37, - k_EResultRemoteDisconnect = 38, - k_EResultShoppingCartNotFound = 39, // failed to find the shopping cart requested - k_EResultBlocked = 40, // a user didn't allow it - k_EResultIgnored = 41, // target is ignoring sender - k_EResultNoMatch = 42, // nothing matching the request found - k_EResultAccountDisabled = 43, - k_EResultServiceReadOnly = 44, // this service is not accepting content changes right now - k_EResultAccountNotFeatured = 45, // account doesn't have value, so this feature isn't available - k_EResultAdministratorOK = 46, // allowed to take this action, but only because requester is admin - k_EResultContentVersion = 47, // A Version mismatch in content transmitted within the Steam protocol. - k_EResultTryAnotherCM = 48, // The current CM can't service the user making a request, user should try another. - k_EResultPasswordRequiredToKickSession = 49,// You are already logged in elsewhere, this cached credential login has failed. - k_EResultAlreadyLoggedInElsewhere = 50, // You are already logged in elsewhere, you must wait - k_EResultSuspended = 51, // Long running operation (content download) suspended/paused - k_EResultCancelled = 52, // Operation canceled (typically by user: content download) - k_EResultDataCorruption = 53, // Operation canceled because data is ill formed or unrecoverable - k_EResultDiskFull = 54, // Operation canceled - not enough disk space. - k_EResultRemoteCallFailed = 55, // an remote call or IPC call failed - k_EResultPasswordUnset = 56, // Password could not be verified as it's unset server side - k_EResultExternalAccountUnlinked = 57, // External account (PSN, Facebook...) is not linked to a Steam account - k_EResultPSNTicketInvalid = 58, // PSN ticket was invalid - k_EResultExternalAccountAlreadyLinked = 59, // External account (PSN, Facebook...) is already linked to some other account, must explicitly request to replace/delete the link first - k_EResultRemoteFileConflict = 60, // The sync cannot resume due to a conflict between the local and remote files - k_EResultIllegalPassword = 61, // The requested new password is not legal - k_EResultSameAsPreviousValue = 62, // new value is the same as the old one ( secret question and answer ) - k_EResultAccountLogonDenied = 63, // account login denied due to 2nd factor authentication failure - k_EResultCannotUseOldPassword = 64, // The requested new password is not legal - k_EResultInvalidLoginAuthCode = 65, // account login denied due to auth code invalid - k_EResultAccountLogonDeniedNoMail = 66, // account login denied due to 2nd factor auth failure - and no mail has been sent - partner site specific - k_EResultHardwareNotCapableOfIPT = 67, // - k_EResultIPTInitError = 68, // - k_EResultParentalControlRestricted = 69, // operation failed due to parental control restrictions for current user - k_EResultFacebookQueryError = 70, // Facebook query returned an error - k_EResultExpiredLoginAuthCode = 71, // account login denied due to auth code expired - k_EResultIPLoginRestrictionFailed = 72, - k_EResultAccountLockedDown = 73, - k_EResultAccountLogonDeniedVerifiedEmailRequired = 74, - k_EResultNoMatchingURL = 75, - k_EResultBadResponse = 76, // parse failure, missing field, etc. - k_EResultRequirePasswordReEntry = 77, // The user cannot complete the action until they re-enter their password - k_EResultValueOutOfRange = 78, // the value entered is outside the acceptable range - k_EResultUnexpectedError = 79, // something happened that we didn't expect to ever happen - k_EResultDisabled = 80, // The requested service has been configured to be unavailable - k_EResultInvalidCEGSubmission = 81, // The set of files submitted to the CEG server are not valid ! - k_EResultRestrictedDevice = 82, // The device being used is not allowed to perform this action - k_EResultRegionLocked = 83, // The action could not be complete because it is region restricted - k_EResultRateLimitExceeded = 84, // Temporary rate limit exceeded, try again later, different from k_EResultLimitExceeded which may be permanent - k_EResultAccountLoginDeniedNeedTwoFactor = 85, // Need two-factor code to login - k_EResultItemDeleted = 86, // The thing we're trying to access has been deleted - k_EResultAccountLoginDeniedThrottle = 87, // login attempt failed, try to throttle response to possible attacker - k_EResultTwoFactorCodeMismatch = 88, // two factor code mismatch - k_EResultTwoFactorActivationCodeMismatch = 89, // activation code for two-factor didn't match - k_EResultAccountAssociatedToMultiplePartners = 90, // account has been associated with multiple partners - k_EResultNotModified = 91, // data not modified - k_EResultNoMobileDevice = 92, // the account does not have a mobile device associated with it - k_EResultTimeNotSynced = 93, // the time presented is out of range or tolerance - k_EResultSmsCodeFailed = 94, // SMS code failure (no match, none pending, etc.) - k_EResultAccountLimitExceeded = 95, // Too many accounts access this resource - k_EResultAccountActivityLimitExceeded = 96, // Too many changes to this account - k_EResultPhoneActivityLimitExceeded = 97, // Too many changes to this phone - k_EResultRefundToWallet = 98, // Cannot refund to payment method, must use wallet - k_EResultEmailSendFailure = 99, // Cannot send an email - k_EResultNotSettled = 100, // Can't perform operation till payment has settled - k_EResultNeedCaptcha = 101, // Needs to provide a valid captcha - k_EResultGSLTDenied = 102, // a game server login token owned by this token's owner has been banned - k_EResultGSOwnerDenied = 103, // game server owner is denied for other reason (account lock, community ban, vac ban, missing phone) - k_EResultInvalidItemType = 104, // the type of thing we were requested to act on is invalid - k_EResultIPBanned = 105, // the ip address has been banned from taking this action - k_EResultGSLTExpired = 106, // this token has expired from disuse; can be reset for use - k_EResultInsufficientFunds = 107, // user doesn't have enough wallet funds to complete the action - k_EResultTooManyPending = 108, // There are too many of this thing pending already - k_EResultNoSiteLicensesFound = 109, // No site licenses found - k_EResultWGNetworkSendExceeded = 110, // the WG couldn't send a response because we exceeded max network send size - k_EResultAccountNotFriends = 111, // the user is not mutually friends - k_EResultLimitedUserAccount = 112, // the user is limited - k_EResultCantRemoveItem = 113, // item can't be removed - k_EResultAccountDeleted = 114, // account has been deleted - k_EResultExistingUserCancelledLicense = 115, // A license for this already exists, but cancelled - k_EResultCommunityCooldown = 116, // access is denied because of a community cooldown (probably from support profile data resets) - k_EResultNoLauncherSpecified = 117, // No launcher was specified, but a launcher was needed to choose correct realm for operation. - k_EResultMustAgreeToSSA = 118, // User must agree to china SSA or global SSA before login - k_EResultLauncherMigrated = 119, // The specified launcher type is no longer supported; the user should be directed elsewhere - k_EResultSteamRealmMismatch = 120, // The user's realm does not match the realm of the requested resource - k_EResultInvalidSignature = 121, // signature check did not match - k_EResultParseFailure = 122, // Failed to parse input - k_EResultNoVerifiedPhone = 123, // account does not have a verified phone number - k_EResultInsufficientBattery = 124, // user device doesn't have enough battery charge currently to complete the action - k_EResultChargerRequired = 125, // The operation requires a charger to be plugged in, which wasn't present - k_EResultCachedCredentialInvalid = 126, // Cached credential was invalid - user must reauthenticate - K_EResultPhoneNumberIsVOIP = 127, // The phone number provided is a Voice Over IP number - } - - // Error codes for use with the voice functions - public enum EVoiceResult : int { - k_EVoiceResultOK = 0, - k_EVoiceResultNotInitialized = 1, - k_EVoiceResultNotRecording = 2, - k_EVoiceResultNoData = 3, - k_EVoiceResultBufferTooSmall = 4, - k_EVoiceResultDataCorrupted = 5, - k_EVoiceResultRestricted = 6, - k_EVoiceResultUnsupportedCodec = 7, - k_EVoiceResultReceiverOutOfDate = 8, - k_EVoiceResultReceiverDidNotAnswer = 9, - - } - - // Result codes to GSHandleClientDeny/Kick - public enum EDenyReason : int { - k_EDenyInvalid = 0, - k_EDenyInvalidVersion = 1, - k_EDenyGeneric = 2, - k_EDenyNotLoggedOn = 3, - k_EDenyNoLicense = 4, - k_EDenyCheater = 5, - k_EDenyLoggedInElseWhere = 6, - k_EDenyUnknownText = 7, - k_EDenyIncompatibleAnticheat = 8, - k_EDenyMemoryCorruption = 9, - k_EDenyIncompatibleSoftware = 10, - k_EDenySteamConnectionLost = 11, - k_EDenySteamConnectionError = 12, - k_EDenySteamResponseTimedOut = 13, - k_EDenySteamValidationStalled = 14, - k_EDenySteamOwnerLeftGuestUser = 15, - } - - // results from BeginAuthSession - public enum EBeginAuthSessionResult : int { - k_EBeginAuthSessionResultOK = 0, // Ticket is valid for this game and this steamID. - k_EBeginAuthSessionResultInvalidTicket = 1, // Ticket is not valid. - k_EBeginAuthSessionResultDuplicateRequest = 2, // A ticket has already been submitted for this steamID - k_EBeginAuthSessionResultInvalidVersion = 3, // Ticket is from an incompatible interface version - k_EBeginAuthSessionResultGameMismatch = 4, // Ticket is not for this game - k_EBeginAuthSessionResultExpiredTicket = 5, // Ticket has expired - } - - // Callback values for callback ValidateAuthTicketResponse_t which is a response to BeginAuthSession - public enum EAuthSessionResponse : int { - k_EAuthSessionResponseOK = 0, // Steam has verified the user is online, the ticket is valid and ticket has not been reused. - k_EAuthSessionResponseUserNotConnectedToSteam = 1, // The user in question is not connected to steam - k_EAuthSessionResponseNoLicenseOrExpired = 2, // The license has expired. - k_EAuthSessionResponseVACBanned = 3, // The user is VAC banned for this game. - k_EAuthSessionResponseLoggedInElseWhere = 4, // The user account has logged in elsewhere and the session containing the game instance has been disconnected. - k_EAuthSessionResponseVACCheckTimedOut = 5, // VAC has been unable to perform anti-cheat checks on this user - k_EAuthSessionResponseAuthTicketCanceled = 6, // The ticket has been canceled by the issuer - k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed = 7, // This ticket has already been used, it is not valid. - k_EAuthSessionResponseAuthTicketInvalid = 8, // This ticket is not from a user instance currently connected to steam. - k_EAuthSessionResponsePublisherIssuedBan = 9, // The user is banned for this game. The ban came via the web api and not VAC - k_EAuthSessionResponseAuthTicketNetworkIdentityFailure = 10, // The network identity in the ticket does not match the server authenticating the ticket - } - - // results from UserHasLicenseForApp - public enum EUserHasLicenseForAppResult : int { - k_EUserHasLicenseResultHasLicense = 0, // User has a license for specified app - k_EUserHasLicenseResultDoesNotHaveLicense = 1, // User does not have a license for the specified app - k_EUserHasLicenseResultNoAuth = 2, // User has not been authenticated - } - - // Steam account types - public enum EAccountType : int { - k_EAccountTypeInvalid = 0, - k_EAccountTypeIndividual = 1, // single user account - k_EAccountTypeMultiseat = 2, // multiseat (e.g. cybercafe) account - k_EAccountTypeGameServer = 3, // game server account - k_EAccountTypeAnonGameServer = 4, // anonymous game server account - k_EAccountTypePending = 5, // pending - k_EAccountTypeContentServer = 6, // content server - k_EAccountTypeClan = 7, - k_EAccountTypeChat = 8, - k_EAccountTypeConsoleUser = 9, // Fake SteamID for local PSN account on PS3 or Live account on 360, etc. - k_EAccountTypeAnonUser = 10, - - // Max of 16 items in this field - k_EAccountTypeMax - } - - //----------------------------------------------------------------------------- - // Purpose: Chat Entry Types (previously was only friend-to-friend message types) - //----------------------------------------------------------------------------- - public enum EChatEntryType : int { - k_EChatEntryTypeInvalid = 0, - k_EChatEntryTypeChatMsg = 1, // Normal text message from another user - k_EChatEntryTypeTyping = 2, // Another user is typing (not used in multi-user chat) - k_EChatEntryTypeInviteGame = 3, // Invite from other user into that users current game - k_EChatEntryTypeEmote = 4, // text emote message (deprecated, should be treated as ChatMsg) - //k_EChatEntryTypeLobbyGameStart = 5, // lobby game is starting (dead - listen for LobbyGameCreated_t callback instead) - k_EChatEntryTypeLeftConversation = 6, // user has left the conversation ( closed chat window ) - // Above are previous FriendMsgType entries, now merged into more generic chat entry types - k_EChatEntryTypeEntered = 7, // user has entered the conversation (used in multi-user chat and group chat) - k_EChatEntryTypeWasKicked = 8, // user was kicked (data: 64-bit steamid of actor performing the kick) - k_EChatEntryTypeWasBanned = 9, // user was banned (data: 64-bit steamid of actor performing the ban) - k_EChatEntryTypeDisconnected = 10, // user disconnected - k_EChatEntryTypeHistoricalChat = 11, // a chat message from user's chat history or offilne message - //k_EChatEntryTypeReserved1 = 12, // No longer used - //k_EChatEntryTypeReserved2 = 13, // No longer used - k_EChatEntryTypeLinkBlocked = 14, // a link was removed by the chat filter. - } - - //----------------------------------------------------------------------------- - // Purpose: Chat Room Enter Responses - //----------------------------------------------------------------------------- - public enum EChatRoomEnterResponse : int { - k_EChatRoomEnterResponseSuccess = 1, // Success - k_EChatRoomEnterResponseDoesntExist = 2, // Chat doesn't exist (probably closed) - k_EChatRoomEnterResponseNotAllowed = 3, // General Denied - You don't have the permissions needed to join the chat - k_EChatRoomEnterResponseFull = 4, // Chat room has reached its maximum size - k_EChatRoomEnterResponseError = 5, // Unexpected Error - k_EChatRoomEnterResponseBanned = 6, // You are banned from this chat room and may not join - k_EChatRoomEnterResponseLimited = 7, // Joining this chat is not allowed because you are a limited user (no value on account) - k_EChatRoomEnterResponseClanDisabled = 8, // Attempt to join a clan chat when the clan is locked or disabled - k_EChatRoomEnterResponseCommunityBan = 9, // Attempt to join a chat when the user has a community lock on their account - k_EChatRoomEnterResponseMemberBlockedYou = 10, // Join failed - some member in the chat has blocked you from joining - k_EChatRoomEnterResponseYouBlockedMember = 11, // Join failed - you have blocked some member already in the chat - // k_EChatRoomEnterResponseNoRankingDataLobby = 12, // No longer used - // k_EChatRoomEnterResponseNoRankingDataUser = 13, // No longer used - // k_EChatRoomEnterResponseRankOutOfRange = 14, // No longer used - k_EChatRoomEnterResponseRatelimitExceeded = 15, // Join failed - to many join attempts in a very short period of time - } - - // Special flags for Chat accounts - they go in the top 8 bits - // of the steam ID's "instance", leaving 12 for the actual instances - [Flags] - public enum EChatSteamIDInstanceFlags : int { - k_EChatAccountInstanceMask = 0x00000FFF, // top 8 bits are flags - - k_EChatInstanceFlagClan = ( Constants.k_unSteamAccountInstanceMask + 1 ) >> 1, // top bit - k_EChatInstanceFlagLobby = ( Constants.k_unSteamAccountInstanceMask + 1 ) >> 2, // next one down, etc - k_EChatInstanceFlagMMSLobby = ( Constants.k_unSteamAccountInstanceMask + 1 ) >> 3, // next one down, etc - - // Max of 8 flags - } - - //----------------------------------------------------------------------------- - // Purpose: Possible positions to tell the overlay to show notifications in - //----------------------------------------------------------------------------- - public enum ENotificationPosition : int { - k_EPositionInvalid = -1, - k_EPositionTopLeft = 0, - k_EPositionTopRight = 1, - k_EPositionBottomLeft = 2, - k_EPositionBottomRight = 3, - } - - //----------------------------------------------------------------------------- - // Purpose: Broadcast upload result details - //----------------------------------------------------------------------------- - public enum EBroadcastUploadResult : int { - k_EBroadcastUploadResultNone = 0, // broadcast state unknown - k_EBroadcastUploadResultOK = 1, // broadcast was good, no problems - k_EBroadcastUploadResultInitFailed = 2, // broadcast init failed - k_EBroadcastUploadResultFrameFailed = 3, // broadcast frame upload failed - k_EBroadcastUploadResultTimeout = 4, // broadcast upload timed out - k_EBroadcastUploadResultBandwidthExceeded = 5, // broadcast send too much data - k_EBroadcastUploadResultLowFPS = 6, // broadcast FPS too low - k_EBroadcastUploadResultMissingKeyFrames = 7, // broadcast sending not enough key frames - k_EBroadcastUploadResultNoConnection = 8, // broadcast client failed to connect to relay - k_EBroadcastUploadResultRelayFailed = 9, // relay dropped the upload - k_EBroadcastUploadResultSettingsChanged = 10, // the client changed broadcast settings - k_EBroadcastUploadResultMissingAudio = 11, // client failed to send audio data - k_EBroadcastUploadResultTooFarBehind = 12, // clients was too slow uploading - k_EBroadcastUploadResultTranscodeBehind = 13, // server failed to keep up with transcode - k_EBroadcastUploadResultNotAllowedToPlay = 14, // Broadcast does not have permissions to play game - k_EBroadcastUploadResultBusy = 15, // RTMP host to busy to take new broadcast stream, choose another - k_EBroadcastUploadResultBanned = 16, // Account banned from community broadcast - k_EBroadcastUploadResultAlreadyActive = 17, // We already already have an stream running. - k_EBroadcastUploadResultForcedOff = 18, // We explicitly shutting down a broadcast - k_EBroadcastUploadResultAudioBehind = 19, // Audio stream was too far behind video - k_EBroadcastUploadResultShutdown = 20, // Broadcast Server was shut down - k_EBroadcastUploadResultDisconnect = 21, // broadcast uploader TCP disconnected - k_EBroadcastUploadResultVideoInitFailed = 22, // invalid video settings - k_EBroadcastUploadResultAudioInitFailed = 23, // invalid audio settings - } - - //----------------------------------------------------------------------------- - // Purpose: Reasons a user may not use the Community Market. - // Used in MarketEligibilityResponse_t. - //----------------------------------------------------------------------------- - [Flags] - public enum EMarketNotAllowedReasonFlags : int { - k_EMarketNotAllowedReason_None = 0, - - // A back-end call failed or something that might work again on retry - k_EMarketNotAllowedReason_TemporaryFailure = (1 << 0), - - // Disabled account - k_EMarketNotAllowedReason_AccountDisabled = (1 << 1), - - // Locked account - k_EMarketNotAllowedReason_AccountLockedDown = (1 << 2), - - // Limited account (no purchases) - k_EMarketNotAllowedReason_AccountLimited = (1 << 3), - - // The account is banned from trading items - k_EMarketNotAllowedReason_TradeBanned = (1 << 4), - - // Wallet funds aren't tradable because the user has had no purchase - // activity in the last year or has had no purchases prior to last month - k_EMarketNotAllowedReason_AccountNotTrusted = (1 << 5), - - // The user doesn't have Steam Guard enabled - k_EMarketNotAllowedReason_SteamGuardNotEnabled = (1 << 6), - - // The user has Steam Guard, but it hasn't been enabled for the required - // number of days - k_EMarketNotAllowedReason_SteamGuardOnlyRecentlyEnabled = (1 << 7), - - // The user has recently forgotten their password and reset it - k_EMarketNotAllowedReason_RecentPasswordReset = (1 << 8), - - // The user has recently funded his or her wallet with a new payment method - k_EMarketNotAllowedReason_NewPaymentMethod = (1 << 9), - - // An invalid cookie was sent by the user - k_EMarketNotAllowedReason_InvalidCookie = (1 << 10), - - // The user has Steam Guard, but is using a new computer or web browser - k_EMarketNotAllowedReason_UsingNewDevice = (1 << 11), - - // The user has recently refunded a store purchase by his or herself - k_EMarketNotAllowedReason_RecentSelfRefund = (1 << 12), - - // The user has recently funded his or her wallet with a new payment method that cannot be verified - k_EMarketNotAllowedReason_NewPaymentMethodCannotBeVerified = (1 << 13), - - // Not only is the account not trusted, but they have no recent purchases at all - k_EMarketNotAllowedReason_NoRecentPurchases = (1 << 14), - - // User accepted a wallet gift that was recently purchased - k_EMarketNotAllowedReason_AcceptedWalletGift = (1 << 15), - } - - // - // describes XP / progress restrictions to apply for games with duration control / - // anti-indulgence enabled for minor Steam China users. - // - // WARNING: DO NOT RENUMBER - public enum EDurationControlProgress : int { - k_EDurationControlProgress_Full = 0, // Full progress - k_EDurationControlProgress_Half = 1, // deprecated - XP or persistent rewards should be halved - k_EDurationControlProgress_None = 2, // deprecated - XP or persistent rewards should be stopped - - k_EDurationControl_ExitSoon_3h = 3, // allowed 3h time since 5h gap/break has elapsed, game should exit - steam will terminate the game soon - k_EDurationControl_ExitSoon_5h = 4, // allowed 5h time in calendar day has elapsed, game should exit - steam will terminate the game soon - k_EDurationControl_ExitSoon_Night = 5, // game running after day period, game should exit - steam will terminate the game soon - } - - // - // describes which notification timer has expired, for steam china duration control feature - // - // WARNING: DO NOT RENUMBER - public enum EDurationControlNotification : int { - k_EDurationControlNotification_None = 0, // just informing you about progress, no notification to show - k_EDurationControlNotification_1Hour = 1, // "you've been playing for N hours" - - k_EDurationControlNotification_3Hours = 2, // deprecated - "you've been playing for 3 hours; take a break" - k_EDurationControlNotification_HalfProgress = 3,// deprecated - "your XP / progress is half normal" - k_EDurationControlNotification_NoProgress = 4, // deprecated - "your XP / progress is zero" - - k_EDurationControlNotification_ExitSoon_3h = 5, // allowed 3h time since 5h gap/break has elapsed, game should exit - steam will terminate the game soon - k_EDurationControlNotification_ExitSoon_5h = 6, // allowed 5h time in calendar day has elapsed, game should exit - steam will terminate the game soon - k_EDurationControlNotification_ExitSoon_Night = 7,// game running after day period, game should exit - steam will terminate the game soon - } - - // - // Specifies a game's online state in relation to duration control - // - public enum EDurationControlOnlineState : int { - k_EDurationControlOnlineState_Invalid = 0, // nil value - k_EDurationControlOnlineState_Offline = 1, // currently in offline play - single-player, offline co-op, etc. - k_EDurationControlOnlineState_Online = 2, // currently in online play - k_EDurationControlOnlineState_OnlineHighPri = 3, // currently in online play and requests not to be interrupted - } - - public enum EGameSearchErrorCode_t : int { - k_EGameSearchErrorCode_OK = 1, - k_EGameSearchErrorCode_Failed_Search_Already_In_Progress = 2, - k_EGameSearchErrorCode_Failed_No_Search_In_Progress = 3, - k_EGameSearchErrorCode_Failed_Not_Lobby_Leader = 4, // if not the lobby leader can not call SearchForGameWithLobby - k_EGameSearchErrorCode_Failed_No_Host_Available = 5, // no host is available that matches those search params - k_EGameSearchErrorCode_Failed_Search_Params_Invalid = 6, // search params are invalid - k_EGameSearchErrorCode_Failed_Offline = 7, // offline, could not communicate with server - k_EGameSearchErrorCode_Failed_NotAuthorized = 8, // either the user or the application does not have priveledges to do this - k_EGameSearchErrorCode_Failed_Unknown_Error = 9, // unknown error - } - - public enum EPlayerResult_t : int { - k_EPlayerResultFailedToConnect = 1, // failed to connect after confirming - k_EPlayerResultAbandoned = 2, // quit game without completing it - k_EPlayerResultKicked = 3, // kicked by other players/moderator/server rules - k_EPlayerResultIncomplete = 4, // player stayed to end but game did not conclude successfully ( nofault to player ) - k_EPlayerResultCompleted = 5, // player completed game - } - - public enum ESteamIPv6ConnectivityProtocol : int { - k_ESteamIPv6ConnectivityProtocol_Invalid = 0, - k_ESteamIPv6ConnectivityProtocol_HTTP = 1, // because a proxy may make this different than other protocols - k_ESteamIPv6ConnectivityProtocol_UDP = 2, // test UDP connectivity. Uses a port that is commonly needed for other Steam stuff. If UDP works, TCP probably works. - } - - // For the above transport protocol, what do we think the local machine's connectivity to the internet over ipv6 is like - public enum ESteamIPv6ConnectivityState : int { - k_ESteamIPv6ConnectivityState_Unknown = 0, // We haven't run a test yet - k_ESteamIPv6ConnectivityState_Good = 1, // We have recently been able to make a request on ipv6 for the given protocol - k_ESteamIPv6ConnectivityState_Bad = 2, // We failed to make a request, either because this machine has no ipv6 address assigned, or it has no upstream connectivity - } - - // HTTP related types - // This enum is used in client API methods, do not re-number existing values. - public enum EHTTPMethod : int { - k_EHTTPMethodInvalid = 0, - k_EHTTPMethodGET, - k_EHTTPMethodHEAD, - k_EHTTPMethodPOST, - k_EHTTPMethodPUT, - k_EHTTPMethodDELETE, - k_EHTTPMethodOPTIONS, - k_EHTTPMethodPATCH, - - // The remaining HTTP methods are not yet supported, per rfc2616 section 5.1.1 only GET and HEAD are required for - // a compliant general purpose server. We'll likely add more as we find uses for them. - - // k_EHTTPMethodTRACE, - // k_EHTTPMethodCONNECT - } - - // HTTP Status codes that the server can send in response to a request, see rfc2616 section 10.3 for descriptions - // of each of these. - public enum EHTTPStatusCode : int { - // Invalid status code (this isn't defined in HTTP, used to indicate unset in our code) - k_EHTTPStatusCodeInvalid = 0, - - // Informational codes - k_EHTTPStatusCode100Continue = 100, - k_EHTTPStatusCode101SwitchingProtocols = 101, - - // Success codes - k_EHTTPStatusCode200OK = 200, - k_EHTTPStatusCode201Created = 201, - k_EHTTPStatusCode202Accepted = 202, - k_EHTTPStatusCode203NonAuthoritative = 203, - k_EHTTPStatusCode204NoContent = 204, - k_EHTTPStatusCode205ResetContent = 205, - k_EHTTPStatusCode206PartialContent = 206, - - // Redirection codes - k_EHTTPStatusCode300MultipleChoices = 300, - k_EHTTPStatusCode301MovedPermanently = 301, - k_EHTTPStatusCode302Found = 302, - k_EHTTPStatusCode303SeeOther = 303, - k_EHTTPStatusCode304NotModified = 304, - k_EHTTPStatusCode305UseProxy = 305, - //k_EHTTPStatusCode306Unused = 306, (used in old HTTP spec, now unused in 1.1) - k_EHTTPStatusCode307TemporaryRedirect = 307, - k_EHTTPStatusCode308PermanentRedirect = 308, - - // Error codes - k_EHTTPStatusCode400BadRequest = 400, - k_EHTTPStatusCode401Unauthorized = 401, // You probably want 403 or something else. 401 implies you're sending a WWW-Authenticate header and the client can sent an Authorization header in response. - k_EHTTPStatusCode402PaymentRequired = 402, // This is reserved for future HTTP specs, not really supported by clients - k_EHTTPStatusCode403Forbidden = 403, - k_EHTTPStatusCode404NotFound = 404, - k_EHTTPStatusCode405MethodNotAllowed = 405, - k_EHTTPStatusCode406NotAcceptable = 406, - k_EHTTPStatusCode407ProxyAuthRequired = 407, - k_EHTTPStatusCode408RequestTimeout = 408, - k_EHTTPStatusCode409Conflict = 409, - k_EHTTPStatusCode410Gone = 410, - k_EHTTPStatusCode411LengthRequired = 411, - k_EHTTPStatusCode412PreconditionFailed = 412, - k_EHTTPStatusCode413RequestEntityTooLarge = 413, - k_EHTTPStatusCode414RequestURITooLong = 414, - k_EHTTPStatusCode415UnsupportedMediaType = 415, - k_EHTTPStatusCode416RequestedRangeNotSatisfiable = 416, - k_EHTTPStatusCode417ExpectationFailed = 417, - k_EHTTPStatusCode4xxUnknown = 418, // 418 is reserved, so we'll use it to mean unknown - k_EHTTPStatusCode429TooManyRequests = 429, - k_EHTTPStatusCode444ConnectionClosed = 444, // nginx only? - - // Server error codes - k_EHTTPStatusCode500InternalServerError = 500, - k_EHTTPStatusCode501NotImplemented = 501, - k_EHTTPStatusCode502BadGateway = 502, - k_EHTTPStatusCode503ServiceUnavailable = 503, - k_EHTTPStatusCode504GatewayTimeout = 504, - k_EHTTPStatusCode505HTTPVersionNotSupported = 505, - k_EHTTPStatusCode5xxUnknown = 599, - } - - /// Describe the status of a particular network resource - public enum ESteamNetworkingAvailability : int { - // Negative values indicate a problem. - // - // In general, we will not automatically retry unless you take some action that - // depends on of requests this resource, such as querying the status, attempting - // to initiate a connection, receive a connection, etc. If you do not take any - // action at all, we do not automatically retry in the background. - k_ESteamNetworkingAvailability_CannotTry = -102, // A dependent resource is missing, so this service is unavailable. (E.g. we cannot talk to routers because Internet is down or we don't have the network config.) - k_ESteamNetworkingAvailability_Failed = -101, // We have tried for enough time that we would expect to have been successful by now. We have never been successful - k_ESteamNetworkingAvailability_Previously = -100, // We tried and were successful at one time, but now it looks like we have a problem - - k_ESteamNetworkingAvailability_Retrying = -10, // We previously failed and are currently retrying - - // Not a problem, but not ready either - k_ESteamNetworkingAvailability_NeverTried = 1, // We don't know because we haven't ever checked/tried - k_ESteamNetworkingAvailability_Waiting = 2, // We're waiting on a dependent resource to be acquired. (E.g. we cannot obtain a cert until we are logged into Steam. We cannot measure latency to relays until we have the network config.) - k_ESteamNetworkingAvailability_Attempting = 3, // We're actively trying now, but are not yet successful. - - k_ESteamNetworkingAvailability_Current = 100, // Resource is online/available - - - k_ESteamNetworkingAvailability_Unknown = 0, // Internal dummy/sentinel, or value is not applicable in this context - k_ESteamNetworkingAvailability__Force32bit = 0x7fffffff, - } - - // - // Describing network hosts - // - /// Different methods of describing the identity of a network host - public enum ESteamNetworkingIdentityType : int { - // Dummy/empty/invalid. - // Please note that if we parse a string that we don't recognize - // but that appears reasonable, we will NOT use this type. Instead - // we'll use k_ESteamNetworkingIdentityType_UnknownType. - k_ESteamNetworkingIdentityType_Invalid = 0, - - // - // Basic platform-specific identifiers. - // - k_ESteamNetworkingIdentityType_SteamID = 16, // 64-bit CSteamID - k_ESteamNetworkingIdentityType_XboxPairwiseID = 17, // Publisher-specific user identity, as string - k_ESteamNetworkingIdentityType_SonyPSN = 18, // 64-bit ID - k_ESteamNetworkingIdentityType_GoogleStadia = 19, // 64-bit ID - //k_ESteamNetworkingIdentityType_NintendoNetworkServiceAccount, - //k_ESteamNetworkingIdentityType_EpicGameStore - //k_ESteamNetworkingIdentityType_WeGame - - // - // Special identifiers. - // - - // Use their IP address (and port) as their "identity". - // These types of identities are always unauthenticated. - // They are useful for porting plain sockets code, and other - // situations where you don't care about authentication. In this - // case, the local identity will be "localhost", - // and the remote address will be their network address. - // - // We use the same type for either IPv4 or IPv6, and - // the address is always store as IPv6. We use IPv4 - // mapped addresses to handle IPv4. - k_ESteamNetworkingIdentityType_IPAddress = 1, - - // Generic string/binary blobs. It's up to your app to interpret this. - // This library can tell you if the remote host presented a certificate - // signed by somebody you have chosen to trust, with this identity on it. - // It's up to you to ultimately decide what this identity means. - k_ESteamNetworkingIdentityType_GenericString = 2, - k_ESteamNetworkingIdentityType_GenericBytes = 3, - - // This identity type is used when we parse a string that looks like is a - // valid identity, just of a kind that we don't recognize. In this case, we - // can often still communicate with the peer! Allowing such identities - // for types we do not recognize useful is very useful for forward - // compatibility. - k_ESteamNetworkingIdentityType_UnknownType = 4, - - // Make sure this enum is stored in an int. - k_ESteamNetworkingIdentityType__Force32bit = 0x7fffffff, - } - - /// "Fake IPs" are assigned to hosts, to make it easier to interface with - /// older code that assumed all hosts will have an IPv4 address - public enum ESteamNetworkingFakeIPType : int { - k_ESteamNetworkingFakeIPType_Invalid, // Error, argument was not even an IP address, etc. - k_ESteamNetworkingFakeIPType_NotFake, // Argument was a valid IP, but was not from the reserved "fake" range - k_ESteamNetworkingFakeIPType_GlobalIPv4, // Globally unique (for a given app) IPv4 address. Address space managed by Steam - k_ESteamNetworkingFakeIPType_LocalIPv4, // Locally unique IPv4 address. Address space managed by the local process. For internal use only; should not be shared! - - k_ESteamNetworkingFakeIPType__Force32Bit = 0x7fffffff - } - - // - // Connection status - // - /// High level connection status - public enum ESteamNetworkingConnectionState : int { - - /// Dummy value used to indicate an error condition in the API. - /// Specified connection doesn't exist or has already been closed. - k_ESteamNetworkingConnectionState_None = 0, - - /// We are trying to establish whether peers can talk to each other, - /// whether they WANT to talk to each other, perform basic auth, - /// and exchange crypt keys. - /// - /// - For connections on the "client" side (initiated locally): - /// We're in the process of trying to establish a connection. - /// Depending on the connection type, we might not know who they are. - /// Note that it is not possible to tell if we are waiting on the - /// network to complete handshake packets, or for the application layer - /// to accept the connection. - /// - /// - For connections on the "server" side (accepted through listen socket): - /// We have completed some basic handshake and the client has presented - /// some proof of identity. The connection is ready to be accepted - /// using AcceptConnection(). - /// - /// In either case, any unreliable packets sent now are almost certain - /// to be dropped. Attempts to receive packets are guaranteed to fail. - /// You may send messages if the send mode allows for them to be queued. - /// but if you close the connection before the connection is actually - /// established, any queued messages will be discarded immediately. - /// (We will not attempt to flush the queue and confirm delivery to the - /// remote host, which ordinarily happens when a connection is closed.) - k_ESteamNetworkingConnectionState_Connecting = 1, - - /// Some connection types use a back channel or trusted 3rd party - /// for earliest communication. If the server accepts the connection, - /// then these connections switch into the rendezvous state. During this - /// state, we still have not yet established an end-to-end route (through - /// the relay network), and so if you send any messages unreliable, they - /// are going to be discarded. - k_ESteamNetworkingConnectionState_FindingRoute = 2, - - /// We've received communications from our peer (and we know - /// who they are) and are all good. If you close the connection now, - /// we will make our best effort to flush out any reliable sent data that - /// has not been acknowledged by the peer. (But note that this happens - /// from within the application process, so unlike a TCP connection, you are - /// not totally handing it off to the operating system to deal with it.) - k_ESteamNetworkingConnectionState_Connected = 3, - - /// Connection has been closed by our peer, but not closed locally. - /// The connection still exists from an API perspective. You must close the - /// handle to free up resources. If there are any messages in the inbound queue, - /// you may retrieve them. Otherwise, nothing may be done with the connection - /// except to close it. - /// - /// This stats is similar to CLOSE_WAIT in the TCP state machine. - k_ESteamNetworkingConnectionState_ClosedByPeer = 4, - - /// A disruption in the connection has been detected locally. (E.g. timeout, - /// local internet connection disrupted, etc.) - /// - /// The connection still exists from an API perspective. You must close the - /// handle to free up resources. - /// - /// Attempts to send further messages will fail. Any remaining received messages - /// in the queue are available. - k_ESteamNetworkingConnectionState_ProblemDetectedLocally = 5, - - // - // The following values are used internally and will not be returned by any API. - // We document them here to provide a little insight into the state machine that is used - // under the hood. - // - - /// We've disconnected on our side, and from an API perspective the connection is closed. - /// No more data may be sent or received. All reliable data has been flushed, or else - /// we've given up and discarded it. We do not yet know for sure that the peer knows - /// the connection has been closed, however, so we're just hanging around so that if we do - /// get a packet from them, we can send them the appropriate packets so that they can - /// know why the connection was closed (and not have to rely on a timeout, which makes - /// it appear as if something is wrong). - k_ESteamNetworkingConnectionState_FinWait = -1, - - /// We've disconnected on our side, and from an API perspective the connection is closed. - /// No more data may be sent or received. From a network perspective, however, on the wire, - /// we have not yet given any indication to the peer that the connection is closed. - /// We are in the process of flushing out the last bit of reliable data. Once that is done, - /// we will inform the peer that the connection has been closed, and transition to the - /// FinWait state. - /// - /// Note that no indication is given to the remote host that we have closed the connection, - /// until the data has been flushed. If the remote host attempts to send us data, we will - /// do whatever is necessary to keep the connection alive until it can be closed properly. - /// But in fact the data will be discarded, since there is no way for the application to - /// read it back. Typically this is not a problem, as application protocols that utilize - /// the lingering functionality are designed for the remote host to wait for the response - /// before sending any more data. - k_ESteamNetworkingConnectionState_Linger = -2, - - /// Connection is completely inactive and ready to be destroyed - k_ESteamNetworkingConnectionState_Dead = -3, - - k_ESteamNetworkingConnectionState__Force32Bit = 0x7fffffff - } - - /// Enumerate various causes of connection termination. These are designed to work similar - /// to HTTP error codes: the numeric range gives you a rough classification as to the source - /// of the problem. - public enum ESteamNetConnectionEnd : int { - // Invalid/sentinel value - k_ESteamNetConnectionEnd_Invalid = 0, - - // - // Application codes. These are the values you will pass to - // ISteamNetworkingSockets::CloseConnection. You can use these codes if - // you want to plumb through application-specific reason codes. If you don't - // need this facility, feel free to always pass - // k_ESteamNetConnectionEnd_App_Generic. - // - // The distinction between "normal" and "exceptional" termination is - // one you may use if you find useful, but it's not necessary for you - // to do so. The only place where we distinguish between normal and - // exceptional is in connection analytics. If a significant - // proportion of connections terminates in an exceptional manner, - // this can trigger an alert. - // - - // 1xxx: Application ended the connection in a "usual" manner. - // E.g.: user intentionally disconnected from the server, - // gameplay ended normally, etc - k_ESteamNetConnectionEnd_App_Min = 1000, - k_ESteamNetConnectionEnd_App_Generic = k_ESteamNetConnectionEnd_App_Min, - // Use codes in this range for "normal" disconnection - k_ESteamNetConnectionEnd_App_Max = 1999, - - // 2xxx: Application ended the connection in some sort of exceptional - // or unusual manner that might indicate a bug or configuration - // issue. - // - k_ESteamNetConnectionEnd_AppException_Min = 2000, - k_ESteamNetConnectionEnd_AppException_Generic = k_ESteamNetConnectionEnd_AppException_Min, - // Use codes in this range for "unusual" disconnection - k_ESteamNetConnectionEnd_AppException_Max = 2999, - - // - // System codes. These will be returned by the system when - // the connection state is k_ESteamNetworkingConnectionState_ClosedByPeer - // or k_ESteamNetworkingConnectionState_ProblemDetectedLocally. It is - // illegal to pass a code in this range to ISteamNetworkingSockets::CloseConnection - // - - // 3xxx: Connection failed or ended because of problem with the - // local host or their connection to the Internet. - k_ESteamNetConnectionEnd_Local_Min = 3000, - - // You cannot do what you want to do because you're running in offline mode. - k_ESteamNetConnectionEnd_Local_OfflineMode = 3001, - - // We're having trouble contacting many (perhaps all) relays. - // Since it's unlikely that they all went offline at once, the best - // explanation is that we have a problem on our end. Note that we don't - // bother distinguishing between "many" and "all", because in practice, - // it takes time to detect a connection problem, and by the time - // the connection has timed out, we might not have been able to - // actively probe all of the relay clusters, even if we were able to - // contact them at one time. So this code just means that: - // - // * We don't have any recent successful communication with any relay. - // * We have evidence of recent failures to communicate with multiple relays. - k_ESteamNetConnectionEnd_Local_ManyRelayConnectivity = 3002, - - // A hosted server is having trouble talking to the relay - // that the client was using, so the problem is most likely - // on our end - k_ESteamNetConnectionEnd_Local_HostedServerPrimaryRelay = 3003, - - // We're not able to get the SDR network config. This is - // *almost* always a local issue, since the network config - // comes from the CDN, which is pretty darn reliable. - k_ESteamNetConnectionEnd_Local_NetworkConfig = 3004, - - // Steam rejected our request because we don't have rights - // to do this. - k_ESteamNetConnectionEnd_Local_Rights = 3005, - - // ICE P2P rendezvous failed because we were not able to - // determine our "public" address (e.g. reflexive address via STUN) - // - // If relay fallback is available (it always is on Steam), then - // this is only used internally and will not be returned as a high - // level failure. - k_ESteamNetConnectionEnd_Local_P2P_ICE_NoPublicAddresses = 3006, - - k_ESteamNetConnectionEnd_Local_Max = 3999, - - // 4xxx: Connection failed or ended, and it appears that the - // cause does NOT have to do with the local host or their - // connection to the Internet. It could be caused by the - // remote host, or it could be somewhere in between. - k_ESteamNetConnectionEnd_Remote_Min = 4000, - - // The connection was lost, and as far as we can tell our connection - // to relevant services (relays) has not been disrupted. This doesn't - // mean that the problem is "their fault", it just means that it doesn't - // appear that we are having network issues on our end. - k_ESteamNetConnectionEnd_Remote_Timeout = 4001, - - // Something was invalid with the cert or crypt handshake - // info you gave me, I don't understand or like your key types, - // etc. - k_ESteamNetConnectionEnd_Remote_BadCrypt = 4002, - - // You presented me with a cert that was I was able to parse - // and *technically* we could use encrypted communication. - // But there was a problem that prevents me from checking your identity - // or ensuring that somebody int he middle can't observe our communication. - // E.g.: - the CA key was missing (and I don't accept unsigned certs) - // - The CA key isn't one that I trust, - // - The cert doesn't was appropriately restricted by app, user, time, data center, etc. - // - The cert wasn't issued to you. - // - etc - k_ESteamNetConnectionEnd_Remote_BadCert = 4003, - - // These will never be returned - //k_ESteamNetConnectionEnd_Remote_NotLoggedIn_DEPRECATED = 4004, - //k_ESteamNetConnectionEnd_Remote_NotRunningApp_DEPRECATED = 4005, - - // Something wrong with the protocol version you are using. - // (Probably the code you are running is too old.) - k_ESteamNetConnectionEnd_Remote_BadProtocolVersion = 4006, - - // NAT punch failed failed because we never received any public - // addresses from the remote host. (But we did receive some - // signals form them.) - // - // If relay fallback is available (it always is on Steam), then - // this is only used internally and will not be returned as a high - // level failure. - k_ESteamNetConnectionEnd_Remote_P2P_ICE_NoPublicAddresses = 4007, - - k_ESteamNetConnectionEnd_Remote_Max = 4999, - - // 5xxx: Connection failed for some other reason. - k_ESteamNetConnectionEnd_Misc_Min = 5000, - - // A failure that isn't necessarily the result of a software bug, - // but that should happen rarely enough that it isn't worth specifically - // writing UI or making a localized message for. - // The debug string should contain further details. - k_ESteamNetConnectionEnd_Misc_Generic = 5001, - - // Generic failure that is most likely a software bug. - k_ESteamNetConnectionEnd_Misc_InternalError = 5002, - - // The connection to the remote host timed out, but we - // don't know if the problem is on our end, in the middle, - // or on their end. - k_ESteamNetConnectionEnd_Misc_Timeout = 5003, - - //k_ESteamNetConnectionEnd_Misc_RelayConnectivity_DEPRECATED = 5004, - - // There's some trouble talking to Steam. - k_ESteamNetConnectionEnd_Misc_SteamConnectivity = 5005, - - // A server in a dedicated hosting situation has no relay sessions - // active with which to talk back to a client. (It's the client's - // job to open and maintain those sessions.) - k_ESteamNetConnectionEnd_Misc_NoRelaySessionsToClient = 5006, - - // While trying to initiate a connection, we never received - // *any* communication from the peer. - //k_ESteamNetConnectionEnd_Misc_ServerNeverReplied = 5007, - - // P2P rendezvous failed in a way that we don't have more specific - // information - k_ESteamNetConnectionEnd_Misc_P2P_Rendezvous = 5008, - - // NAT punch failed, probably due to NAT/firewall configuration. - // - // If relay fallback is available (it always is on Steam), then - // this is only used internally and will not be returned as a high - // level failure. - k_ESteamNetConnectionEnd_Misc_P2P_NAT_Firewall = 5009, - - // Our peer replied that it has no record of the connection. - // This should not happen ordinarily, but can happen in a few - // exception cases: - // - // - This is an old connection, and the peer has already cleaned - // up and forgotten about it. (Perhaps it timed out and they - // closed it and were not able to communicate this to us.) - // - A bug or internal protocol error has caused us to try to - // talk to the peer about the connection before we received - // confirmation that the peer has accepted the connection. - // - The peer thinks that we have closed the connection for some - // reason (perhaps a bug), and believes that is it is - // acknowledging our closure. - k_ESteamNetConnectionEnd_Misc_PeerSentNoConnection = 5010, - - k_ESteamNetConnectionEnd_Misc_Max = 5999, - - k_ESteamNetConnectionEnd__Force32Bit = 0x7fffffff - } - - // - // Configuration values - // - /// Configuration values can be applied to different types of objects. - public enum ESteamNetworkingConfigScope : int { - - /// Get/set global option, or defaults. Even options that apply to more specific scopes - /// have global scope, and you may be able to just change the global defaults. If you - /// need different settings per connection (for example), then you will need to set those - /// options at the more specific scope. - k_ESteamNetworkingConfig_Global = 1, - - /// Some options are specific to a particular interface. Note that all connection - /// and listen socket settings can also be set at the interface level, and they will - /// apply to objects created through those interfaces. - k_ESteamNetworkingConfig_SocketsInterface = 2, - - /// Options for a listen socket. Listen socket options can be set at the interface layer, - /// if you have multiple listen sockets and they all use the same options. - /// You can also set connection options on a listen socket, and they set the defaults - /// for all connections accepted through this listen socket. (They will be used if you don't - /// set a connection option.) - k_ESteamNetworkingConfig_ListenSocket = 3, - - /// Options for a specific connection. - k_ESteamNetworkingConfig_Connection = 4, - - k_ESteamNetworkingConfigScope__Force32Bit = 0x7fffffff - } - - // Different configuration values have different data types - public enum ESteamNetworkingConfigDataType : int { - k_ESteamNetworkingConfig_Int32 = 1, - k_ESteamNetworkingConfig_Int64 = 2, - k_ESteamNetworkingConfig_Float = 3, - k_ESteamNetworkingConfig_String = 4, - k_ESteamNetworkingConfig_Ptr = 5, - - k_ESteamNetworkingConfigDataType__Force32Bit = 0x7fffffff - } - - /// Configuration options - public enum ESteamNetworkingConfigValue : int { - k_ESteamNetworkingConfig_Invalid = 0, - - // - // Connection options - // - - /// [connection int32] Timeout value (in ms) to use when first connecting - k_ESteamNetworkingConfig_TimeoutInitial = 24, - - /// [connection int32] Timeout value (in ms) to use after connection is established - k_ESteamNetworkingConfig_TimeoutConnected = 25, - - /// [connection int32] Upper limit of buffered pending bytes to be sent, - /// if this is reached SendMessage will return k_EResultLimitExceeded - /// Default is 512k (524288 bytes) - k_ESteamNetworkingConfig_SendBufferSize = 9, - - /// [connection int64] Get/set userdata as a configuration option. - /// The default value is -1. You may want to set the user data as - /// a config value, instead of using ISteamNetworkingSockets::SetConnectionUserData - /// in two specific instances: - /// - /// - You wish to set the userdata atomically when creating - /// an outbound connection, so that the userdata is filled in properly - /// for any callbacks that happen. However, note that this trick - /// only works for connections initiated locally! For incoming - /// connections, multiple state transitions may happen and - /// callbacks be queued, before you are able to service the first - /// callback! Be careful! - /// - /// - You can set the default userdata for all newly created connections - /// by setting this value at a higher level (e.g. on the listen - /// socket or at the global level.) Then this default - /// value will be inherited when the connection is created. - /// This is useful in case -1 is a valid userdata value, and you - /// wish to use something else as the default value so you can - /// tell if it has been set or not. - /// - /// HOWEVER: once a connection is created, the effective value is - /// then bound to the connection. Unlike other connection options, - /// if you change it again at a higher level, the new value will not - /// be inherited by connections. - /// - /// Using the userdata field in callback structs is not advised because - /// of tricky race conditions. Instead, you might try one of these methods: - /// - /// - Use a separate map with the HSteamNetConnection as the key. - /// - Fetch the userdata from the connection in your callback - /// using ISteamNetworkingSockets::GetConnectionUserData, to - // ensure you have the current value. - k_ESteamNetworkingConfig_ConnectionUserData = 40, - - /// [connection int32] Minimum/maximum send rate clamp, 0 is no limit. - /// This value will control the min/max allowed sending rate that - /// bandwidth estimation is allowed to reach. Default is 0 (no-limit) - k_ESteamNetworkingConfig_SendRateMin = 10, - k_ESteamNetworkingConfig_SendRateMax = 11, - - /// [connection int32] Nagle time, in microseconds. When SendMessage is called, if - /// the outgoing message is less than the size of the MTU, it will be - /// queued for a delay equal to the Nagle timer value. This is to ensure - /// that if the application sends several small messages rapidly, they are - /// coalesced into a single packet. - /// See historical RFC 896. Value is in microseconds. - /// Default is 5000us (5ms). - k_ESteamNetworkingConfig_NagleTime = 12, - - /// [connection int32] Don't automatically fail IP connections that don't have - /// strong auth. On clients, this means we will attempt the connection even if - /// we don't know our identity or can't get a cert. On the server, it means that - /// we won't automatically reject a connection due to a failure to authenticate. - /// (You can examine the incoming connection and decide whether to accept it.) - /// - /// This is a dev configuration value, and you should not let users modify it in - /// production. - k_ESteamNetworkingConfig_IP_AllowWithoutAuth = 23, - - /// [connection int32] Do not send UDP packets with a payload of - /// larger than N bytes. If you set this, k_ESteamNetworkingConfig_MTU_DataSize - /// is automatically adjusted - k_ESteamNetworkingConfig_MTU_PacketSize = 32, - - /// [connection int32] (read only) Maximum message size you can send that - /// will not fragment, based on k_ESteamNetworkingConfig_MTU_PacketSize - k_ESteamNetworkingConfig_MTU_DataSize = 33, - - /// [connection int32] Allow unencrypted (and unauthenticated) communication. - /// 0: Not allowed (the default) - /// 1: Allowed, but prefer encrypted - /// 2: Allowed, and preferred - /// 3: Required. (Fail the connection if the peer requires encryption.) - /// - /// This is a dev configuration value, since its purpose is to disable encryption. - /// You should not let users modify it in production. (But note that it requires - /// the peer to also modify their value in order for encryption to be disabled.) - k_ESteamNetworkingConfig_Unencrypted = 34, - - /// [connection int32] Set this to 1 on outbound connections and listen sockets, - /// to enable "symmetric connect mode", which is useful in the following - /// common peer-to-peer use case: - /// - /// - The two peers are "equal" to each other. (Neither is clearly the "client" - /// or "server".) - /// - Either peer may initiate the connection, and indeed they may do this - /// at the same time - /// - The peers only desire a single connection to each other, and if both - /// peers initiate connections simultaneously, a protocol is needed for them - /// to resolve the conflict, so that we end up with a single connection. - /// - /// This use case is both common, and involves subtle race conditions and tricky - /// pitfalls, which is why the API has support for dealing with it. - /// - /// If an incoming connection arrives on a listen socket or via custom signaling, - /// and the application has not attempted to make a matching outbound connection - /// in symmetric mode, then the incoming connection can be accepted as usual. - /// A "matching" connection means that the relevant endpoint information matches. - /// (At the time this comment is being written, this is only supported for P2P - /// connections, which means that the peer identities must match, and the virtual - /// port must match. At a later time, symmetric mode may be supported for other - /// connection types.) - /// - /// If connections are initiated by both peers simultaneously, race conditions - /// can arise, but fortunately, most of them are handled internally and do not - /// require any special awareness from the application. However, there - /// is one important case that application code must be aware of: - /// If application code attempts an outbound connection using a ConnectXxx - /// function in symmetric mode, and a matching incoming connection is already - /// waiting on a listen socket, then instead of forming a new connection, - /// the ConnectXxx call will accept the existing incoming connection, and return - /// a connection handle to this accepted connection. - /// IMPORTANT: in this case, a SteamNetConnectionStatusChangedCallback_t - /// has probably *already* been posted to the queue for the incoming connection! - /// (Once callbacks are posted to the queue, they are not modified.) It doesn't - /// matter if the callback has not been consumed by the app. Thus, application - /// code that makes use of symmetric connections must be aware that, when processing a - /// SteamNetConnectionStatusChangedCallback_t for an incoming connection, the - /// m_hConn may refer to a new connection that the app has has not - /// seen before (the usual case), but it may also refer to a connection that - /// has already been accepted implicitly through a call to Connect()! In this - /// case, AcceptConnection() will return k_EResultDuplicateRequest. - /// - /// Only one symmetric connection to a given peer (on a given virtual port) - /// may exist at any given time. If client code attempts to create a connection, - /// and a (live) connection already exists on the local host, then either the - /// existing connection will be accepted as described above, or the attempt - /// to create a new connection will fail. Furthermore, linger mode functionality - /// is not supported on symmetric connections. - /// - /// A more complicated race condition can arise if both peers initiate a connection - /// at roughly the same time. In this situation, each peer will receive an incoming - /// connection from the other peer, when the application code has already initiated - /// an outgoing connection to that peer. The peers must resolve this conflict and - /// decide who is going to act as the "server" and who will act as the "client". - /// Typically the application does not need to be aware of this case as it is handled - /// internally. On both sides, the will observe their outbound connection being - /// "accepted", although one of them one have been converted internally to act - /// as the "server". - /// - /// In general, symmetric mode should be all-or-nothing: do not mix symmetric - /// connections with a non-symmetric connection that it might possible "match" - /// with. If you use symmetric mode on any connections, then both peers should - /// use it on all connections, and the corresponding listen socket, if any. The - /// behaviour when symmetric and ordinary connections are mixed is not defined by - /// this API, and you should not rely on it. (This advice only applies when connections - /// might possibly "match". For example, it's OK to use all symmetric mode - /// connections on one virtual port, and all ordinary, non-symmetric connections - /// on a different virtual port, as there is no potential for ambiguity.) - /// - /// When using the feature, you should set it in the following situations on - /// applicable objects: - /// - /// - When creating an outbound connection using ConnectXxx function - /// - When creating a listen socket. (Note that this will automatically cause - /// any accepted connections to inherit the flag.) - /// - When using custom signaling, before accepting an incoming connection. - /// - /// Setting the flag on listen socket and accepted connections will enable the - /// API to automatically deal with duplicate incoming connections, even if the - /// local host has not made any outbound requests. (In general, such duplicate - /// requests from a peer are ignored internally and will not be visible to the - /// application code. The previous connection must be closed or resolved first.) - k_ESteamNetworkingConfig_SymmetricConnect = 37, - - /// [connection int32] For connection types that use "virtual ports", this can be used - /// to assign a local virtual port. For incoming connections, this will always be the - /// virtual port of the listen socket (or the port requested by the remote host if custom - /// signaling is used and the connection is accepted), and cannot be changed. For - /// connections initiated locally, the local virtual port will default to the same as the - /// requested remote virtual port, if you do not specify a different option when creating - /// the connection. The local port is only relevant for symmetric connections, when - /// determining if two connections "match." In this case, if you need the local and remote - /// port to differ, you can set this value. - /// - /// You can also read back this value on listen sockets. - /// - /// This value should not be read or written in any other context. - k_ESteamNetworkingConfig_LocalVirtualPort = 38, - - /// [connection int32] Enable Dual wifi band support for this connection - /// 0 = no, 1 = yes, 2 = simulate it for debugging, even if dual wifi not available - k_ESteamNetworkingConfig_DualWifi_Enable = 39, - - /// [connection int32] True to enable diagnostics reporting through - /// generic platform UI. (Only available on Steam.) - k_ESteamNetworkingConfig_EnableDiagnosticsUI = 46, - - // - // Simulating network conditions - // - // These are global (not per-connection) because they apply at - // a relatively low UDP layer. - // - - /// [global float, 0--100] Randomly discard N pct of packets instead of sending/recv - /// This is a global option only, since it is applied at a low level - /// where we don't have much context - k_ESteamNetworkingConfig_FakePacketLoss_Send = 2, - k_ESteamNetworkingConfig_FakePacketLoss_Recv = 3, - - /// [global int32]. Delay all outbound/inbound packets by N ms - k_ESteamNetworkingConfig_FakePacketLag_Send = 4, - k_ESteamNetworkingConfig_FakePacketLag_Recv = 5, - - /// [global float] 0-100 Percentage of packets we will add additional delay - /// to (causing them to be reordered) - k_ESteamNetworkingConfig_FakePacketReorder_Send = 6, - k_ESteamNetworkingConfig_FakePacketReorder_Recv = 7, - - /// [global int32] Extra delay, in ms, to apply to reordered packets. - k_ESteamNetworkingConfig_FakePacketReorder_Time = 8, - - /// [global float 0--100] Globally duplicate some percentage of packets we send - k_ESteamNetworkingConfig_FakePacketDup_Send = 26, - k_ESteamNetworkingConfig_FakePacketDup_Recv = 27, - - /// [global int32] Amount of delay, in ms, to delay duplicated packets. - /// (We chose a random delay between 0 and this value) - k_ESteamNetworkingConfig_FakePacketDup_TimeMax = 28, - - /// [global int32] Trace every UDP packet, similar to Wireshark or tcpdump. - /// Value is max number of bytes to dump. -1 disables tracing. - // 0 only traces the info but no actual data bytes - k_ESteamNetworkingConfig_PacketTraceMaxBytes = 41, - - - // [global int32] Global UDP token bucket rate limits. - // "Rate" refers to the steady state rate. (Bytes/sec, the - // rate that tokens are put into the bucket.) "Burst" - // refers to the max amount that could be sent in a single - // burst. (In bytes, the max capacity of the bucket.) - // Rate=0 disables the limiter entirely, which is the default. - // Burst=0 disables burst. (This is not realistic. A - // burst of at least 4K is recommended; the default is higher.) - k_ESteamNetworkingConfig_FakeRateLimit_Send_Rate = 42, - k_ESteamNetworkingConfig_FakeRateLimit_Send_Burst = 43, - k_ESteamNetworkingConfig_FakeRateLimit_Recv_Rate = 44, - k_ESteamNetworkingConfig_FakeRateLimit_Recv_Burst = 45, - - // - // Callbacks - // - - // On Steam, you may use the default Steam callback dispatch mechanism. If you prefer - // to not use this dispatch mechanism (or you are not running with Steam), or you want - // to associate specific functions with specific listen sockets or connections, you can - // register them as configuration values. - // - // Note also that ISteamNetworkingUtils has some helpers to set these globally. - - /// [connection FnSteamNetConnectionStatusChanged] Callback that will be invoked - /// when the state of a connection changes. - /// - /// IMPORTANT: callbacks are dispatched to the handler that is in effect at the time - /// the event occurs, which might be in another thread. For example, immediately after - /// creating a listen socket, you may receive an incoming connection. And then immediately - /// after this, the remote host may close the connection. All of this could happen - /// before the function to create the listen socket has returned. For this reason, - /// callbacks usually must be in effect at the time of object creation. This means - /// you should set them when you are creating the listen socket or connection, or have - /// them in effect so they will be inherited at the time of object creation. - /// - /// For example: - /// - /// exterm void MyStatusChangedFunc( SteamNetConnectionStatusChangedCallback_t *info ); - /// SteamNetworkingConfigValue_t opt; opt.SetPtr( k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, MyStatusChangedFunc ); - /// SteamNetworkingIPAddr localAddress; localAddress.Clear(); - /// HSteamListenSocket hListenSock = SteamNetworkingSockets()->CreateListenSocketIP( localAddress, 1, &opt ); - /// - /// When accepting an incoming connection, there is no atomic way to switch the - /// callback. However, if the connection is DOA, AcceptConnection() will fail, and - /// you can fetch the state of the connection at that time. - /// - /// If all connections and listen sockets can use the same callback, the simplest - /// method is to set it globally before you create any listen sockets or connections. - k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged = 201, - - /// [global FnSteamNetAuthenticationStatusChanged] Callback that will be invoked - /// when our auth state changes. If you use this, install the callback before creating - /// any connections or listen sockets, and don't change it. - /// See: ISteamNetworkingUtils::SetGlobalCallback_SteamNetAuthenticationStatusChanged - k_ESteamNetworkingConfig_Callback_AuthStatusChanged = 202, - - /// [global FnSteamRelayNetworkStatusChanged] Callback that will be invoked - /// when our auth state changes. If you use this, install the callback before creating - /// any connections or listen sockets, and don't change it. - /// See: ISteamNetworkingUtils::SetGlobalCallback_SteamRelayNetworkStatusChanged - k_ESteamNetworkingConfig_Callback_RelayNetworkStatusChanged = 203, - - /// [global FnSteamNetworkingMessagesSessionRequest] Callback that will be invoked - /// when a peer wants to initiate a SteamNetworkingMessagesSessionRequest. - /// See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionRequest - k_ESteamNetworkingConfig_Callback_MessagesSessionRequest = 204, - - /// [global FnSteamNetworkingMessagesSessionFailed] Callback that will be invoked - /// when a session you have initiated, or accepted either fails to connect, or loses - /// connection in some unexpected way. - /// See: ISteamNetworkingUtils::SetGlobalCallback_MessagesSessionFailed - k_ESteamNetworkingConfig_Callback_MessagesSessionFailed = 205, - - /// [global FnSteamNetworkingSocketsCreateConnectionSignaling] Callback that will - /// be invoked when we need to create a signaling object for a connection - /// initiated locally. See: ISteamNetworkingSockets::ConnectP2P, - /// ISteamNetworkingMessages. - k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling = 206, - - /// [global FnSteamNetworkingFakeIPResult] Callback that's invoked when - /// a FakeIP allocation finishes. See: ISteamNetworkingSockets::BeginAsyncRequestFakeIP, - /// ISteamNetworkingUtils::SetGlobalCallback_FakeIPResult - k_ESteamNetworkingConfig_Callback_FakeIPResult = 207, - - // - // P2P connection settings - // - - // /// [listen socket int32] When you create a P2P listen socket, we will automatically - // /// open up a UDP port to listen for LAN connections. LAN connections can be made - // /// without any signaling: both sides can be disconnected from the Internet. - // /// - // /// This value can be set to zero to disable the feature. - // k_ESteamNetworkingConfig_P2P_Discovery_Server_LocalPort = 101, - // - // /// [connection int32] P2P connections can perform broadcasts looking for the peer - // /// on the LAN. - // k_ESteamNetworkingConfig_P2P_Discovery_Client_RemotePort = 102, - - /// [connection string] Comma-separated list of STUN servers that can be used - /// for NAT piercing. If you set this to an empty string, NAT piercing will - /// not be attempted. Also if "public" candidates are not allowed for - /// P2P_Transport_ICE_Enable, then this is ignored. - k_ESteamNetworkingConfig_P2P_STUN_ServerList = 103, - - /// [connection int32] What types of ICE candidates to share with the peer. - /// See k_nSteamNetworkingConfig_P2P_Transport_ICE_Enable_xxx values - k_ESteamNetworkingConfig_P2P_Transport_ICE_Enable = 104, - - /// [connection int32] When selecting P2P transport, add various - /// penalties to the scores for selected transports. (Route selection - /// scores are on a scale of milliseconds. The score begins with the - /// route ping time and is then adjusted.) - k_ESteamNetworkingConfig_P2P_Transport_ICE_Penalty = 105, - k_ESteamNetworkingConfig_P2P_Transport_SDR_Penalty = 106, - k_ESteamNetworkingConfig_P2P_TURN_ServerList = 107, - k_ESteamNetworkingConfig_P2P_TURN_UserList = 108, - k_ESteamNetworkingConfig_P2P_TURN_PassList = 109, - //k_ESteamNetworkingConfig_P2P_Transport_LANBeacon_Penalty = 107, - k_ESteamNetworkingConfig_P2P_Transport_ICE_Implementation = 110, - - // - // Settings for SDR relayed connections - // - - /// [int32 global] If the first N pings to a port all fail, mark that port as unavailable for - /// a while, and try a different one. Some ISPs and routers may drop the first - /// packet, so setting this to 1 may greatly disrupt communications. - k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFailInitial = 19, - - /// [int32 global] If N consecutive pings to a port fail, after having received successful - /// communication, mark that port as unavailable for a while, and try a - /// different one. - k_ESteamNetworkingConfig_SDRClient_ConsecutitivePingTimeoutsFail = 20, - - /// [int32 global] Minimum number of lifetime pings we need to send, before we think our estimate - /// is solid. The first ping to each cluster is very often delayed because of NAT, - /// routers not having the best route, etc. Until we've sent a sufficient number - /// of pings, our estimate is often inaccurate. Keep pinging until we get this - /// many pings. - k_ESteamNetworkingConfig_SDRClient_MinPingsBeforePingAccurate = 21, - - /// [int32 global] Set all steam datagram traffic to originate from the same - /// local port. By default, we open up a new UDP socket (on a different local - /// port) for each relay. This is slightly less optimal, but it works around - /// some routers that don't implement NAT properly. If you have intermittent - /// problems talking to relays that might be NAT related, try toggling - /// this flag - k_ESteamNetworkingConfig_SDRClient_SingleSocket = 22, - - /// [global string] Code of relay cluster to force use. If not empty, we will - /// only use relays in that cluster. E.g. 'iad' - k_ESteamNetworkingConfig_SDRClient_ForceRelayCluster = 29, - - /// [connection string] For debugging, generate our own (unsigned) ticket, using - /// the specified gameserver address. Router must be configured to accept unsigned - /// tickets. - k_ESteamNetworkingConfig_SDRClient_DebugTicketAddress = 30, - - /// [global string] For debugging. Override list of relays from the config with - /// this set (maybe just one). Comma-separated list. - k_ESteamNetworkingConfig_SDRClient_ForceProxyAddr = 31, - - /// [global string] For debugging. Force ping times to clusters to be the specified - /// values. A comma separated list of <cluster>=<ms> values. E.g. "sto=32,iad=100" - /// - /// This is a dev configuration value, you probably should not let users modify it - /// in production. - k_ESteamNetworkingConfig_SDRClient_FakeClusterPing = 36, - - // - // Log levels for debugging information of various subsystems. - // Higher numeric values will cause more stuff to be printed. - // See ISteamNetworkingUtils::SetDebugOutputFunction for more - // information - // - // The default for all values is k_ESteamNetworkingSocketsDebugOutputType_Warning. - // - k_ESteamNetworkingConfig_LogLevel_AckRTT = 13, // [connection int32] RTT calculations for inline pings and replies - k_ESteamNetworkingConfig_LogLevel_PacketDecode = 14, // [connection int32] log SNP packets send/recv - k_ESteamNetworkingConfig_LogLevel_Message = 15, // [connection int32] log each message send/recv - k_ESteamNetworkingConfig_LogLevel_PacketGaps = 16, // [connection int32] dropped packets - k_ESteamNetworkingConfig_LogLevel_P2PRendezvous = 17, // [connection int32] P2P rendezvous messages - k_ESteamNetworkingConfig_LogLevel_SDRRelayPings = 18, // [global int32] Ping relays - - - // Deleted, do not use - k_ESteamNetworkingConfig_DELETED_EnumerateDevVars = 35, - - k_ESteamNetworkingConfigValue__Force32Bit = 0x7fffffff - } - - /// Return value of ISteamNetworkintgUtils::GetConfigValue - public enum ESteamNetworkingGetConfigValueResult : int { - k_ESteamNetworkingGetConfigValue_BadValue = -1, // No such configuration value - k_ESteamNetworkingGetConfigValue_BadScopeObj = -2, // Bad connection handle, etc - k_ESteamNetworkingGetConfigValue_BufferTooSmall = -3, // Couldn't fit the result in your buffer - k_ESteamNetworkingGetConfigValue_OK = 1, - k_ESteamNetworkingGetConfigValue_OKInherited = 2, // A value was not set at this level, but the effective (inherited) value was returned. - - k_ESteamNetworkingGetConfigValueResult__Force32Bit = 0x7fffffff - } - - // - // Debug output - // - /// Detail level for diagnostic output callback. - /// See ISteamNetworkingUtils::SetDebugOutputFunction - public enum ESteamNetworkingSocketsDebugOutputType : int { - k_ESteamNetworkingSocketsDebugOutputType_None = 0, - k_ESteamNetworkingSocketsDebugOutputType_Bug = 1, // You used the API incorrectly, or an internal error happened - k_ESteamNetworkingSocketsDebugOutputType_Error = 2, // Run-time error condition that isn't the result of a bug. (E.g. we are offline, cannot bind a port, etc) - k_ESteamNetworkingSocketsDebugOutputType_Important = 3, // Nothing is wrong, but this is an important notification - k_ESteamNetworkingSocketsDebugOutputType_Warning = 4, - k_ESteamNetworkingSocketsDebugOutputType_Msg = 5, // Recommended amount - k_ESteamNetworkingSocketsDebugOutputType_Verbose = 6, // Quite a bit - k_ESteamNetworkingSocketsDebugOutputType_Debug = 7, // Practically everything - k_ESteamNetworkingSocketsDebugOutputType_Everything = 8, // Wall of text, detailed packet contents breakdown, etc - - k_ESteamNetworkingSocketsDebugOutputType__Force32Bit = 0x7fffffff - } - - public enum ESteamIPType : int { - k_ESteamIPTypeIPv4 = 0, - k_ESteamIPTypeIPv6 = 1, - } - - // Steam universes. Each universe is a self-contained Steam instance. - public enum EUniverse : int { - k_EUniverseInvalid = 0, - k_EUniversePublic = 1, - k_EUniverseBeta = 2, - k_EUniverseInternal = 3, - k_EUniverseDev = 4, - // k_EUniverseRC = 5, // no such universe anymore - k_EUniverseMax - } - -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamEnums.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamEnums.cs.meta deleted file mode 100644 index 4a12139..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamEnums.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e736b081fa90e7d4b89c2062fd2c6526 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamStructs.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamStructs.cs deleted file mode 100644 index 49df056..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamStructs.cs +++ /dev/null @@ -1,452 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - // friend game played information - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct FriendGameInfo_t { - public CGameID m_gameID; - public uint m_unGameIP; - public ushort m_usGamePort; - public ushort m_usQueryPort; - public CSteamID m_steamIDLobby; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct InputAnalogActionData_t { - // Type of data coming from this action, this will match what got specified in the action set - public EInputSourceMode eMode; - - // The current state of this action; will be delta updates for mouse actions - public float x, y; - - // Whether or not this action is currently available to be bound in the active action set - public byte bActive; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct InputDigitalActionData_t { - // The current state of this action; will be true if currently pressed - public byte bState; - - // Whether or not this action is currently available to be bound in the active action set - public byte bActive; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct InputMotionData_t { - // Sensor-fused absolute rotation; will drift in heading toward average - public float rotQuatX; - public float rotQuatY; - public float rotQuatZ; - public float rotQuatW; - - // Positional acceleration - public float posAccelX; - public float posAccelY; - public float posAccelZ; - - // Angular velocity - public float rotVelX; - public float rotVelY; - public float rotVelZ; - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct InputMotionDataV2_t { - // - // Gyro post processing: - // - - // Drift Corrected Quaternion is calculated after steam input controller calibration values have been applied. - // Rawest _useful_ version of a quaternion. - // Most camera implementations should use this by comparing last rotation against current rotation, and applying the difference to the in game camera (plus your own sensitivity tweaks) - // It is worth viewing - public float driftCorrectedQuatX; - public float driftCorrectedQuatY; - public float driftCorrectedQuatZ; - public float driftCorrectedQuatW; - - // Sensor fusion corrects using accelerometer, and "average forward over time" for "forward". - // This can "ouija" your aim, so it's not so appropriate for camera controls (sensor fusion was originally made for racing game steering ) - // Same result as from old InputMotionData_t::rotQuatX/Y/Z/W - public float sensorFusionQuatX; - public float sensorFusionQuatY; - public float sensorFusionQuatZ; - public float sensorFusionQuatW; - - // Deferred Sensor fusion quaternion with deferred correction - // Reduces perception of "ouija" effect by only applying correction when the controller is below "low noise" thresholds, - // while the controller rotates fast - never when the user is attempting precision aim. - public float deferredSensorFusionQuatX; - public float deferredSensorFusionQuatY; - public float deferredSensorFusionQuatZ; - public float deferredSensorFusionQuatW; - - // Same as accel but values are calibrated such that 1 unit = 1G. - // X = Right - // Y = Forward out through the joystick USB port. - // Z = Up through the joystick axis. - public float gravityX; - public float gravityY; - public float gravityZ; - - // - // Same as rotVel values in GetMotionData but values are calibrated to degrees per second. - // Local Space (controller relative) - // X = Pitch = left to right axis - // Y = Roll = axis through charging port - // Z = Yaw = axis through sticks - public float degreesPerSecondX; - public float degreesPerSecondY; - public float degreesPerSecondZ; - - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct SteamItemDetails_t { - public SteamItemInstanceID_t m_itemId; - public SteamItemDef_t m_iDefinition; - public ushort m_unQuantity; - public ushort m_unFlags; // see ESteamItemFlags - } - - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct SteamPartyBeaconLocation_t { - public ESteamPartyBeaconLocationType m_eType; - public ulong m_ulLocationID; - } - - // connection state to a specified user, returned by GetP2PSessionState() - // this is under-the-hood info about what's going on with a SendP2PPacket(), shouldn't be needed except for debuggin - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct P2PSessionState_t { - public byte m_bConnectionActive; // true if we've got an active open connection - public byte m_bConnecting; // true if we're currently trying to establish a connection - public byte m_eP2PSessionError; // last error recorded (see enum above) - public byte m_bUsingRelay; // true if it's going through a relay server (TURN) - public int m_nBytesQueuedForSend; - public int m_nPacketsQueuedForSend; - public uint m_nRemoteIP; // potential IP:Port of remote host. Could be TURN server. - public ushort m_nRemotePort; // Only exists for compatibility with older authentication api's - } - - //----------------------------------------------------------------------------- - // Purpose: Structure that contains an array of const char * strings and the number of those strings - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct SteamParamStringArray_t { - public IntPtr m_ppStrings; - public int m_nNumStrings; - } - - // Details for a single published file/UGC - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct SteamUGCDetails_t { - public PublishedFileId_t m_nPublishedFileId; - public EResult m_eResult; // The result of the operation. - public EWorkshopFileType m_eFileType; // Type of the file - public AppId_t m_nCreatorAppID; // ID of the app that created this file. - public AppId_t m_nConsumerAppID; // ID of the app that will consume this file. - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchPublishedDocumentTitleMax)] - private byte[] m_rgchTitle_; - public string m_rgchTitle // title of document - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchTitle_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchTitle_, Constants.k_cchPublishedDocumentTitleMax); } - } - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchPublishedDocumentDescriptionMax)] - private byte[] m_rgchDescription_; - public string m_rgchDescription // description of document - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchDescription_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchDescription_, Constants.k_cchPublishedDocumentDescriptionMax); } - } - public ulong m_ulSteamIDOwner; // Steam ID of the user who created this content. - public uint m_rtimeCreated; // time when the published file was created - public uint m_rtimeUpdated; // time when the published file was last updated - public uint m_rtimeAddedToUserList; // time when the user added the published file to their list (not always applicable) - public ERemoteStoragePublishedFileVisibility m_eVisibility; // visibility - [MarshalAs(UnmanagedType.I1)] - public bool m_bBanned; // whether the file was banned - [MarshalAs(UnmanagedType.I1)] - public bool m_bAcceptedForUse; // developer has specifically flagged this item as accepted in the Workshop - [MarshalAs(UnmanagedType.I1)] - public bool m_bTagsTruncated; // whether the list of tags was too long to be returned in the provided buffer - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchTagListMax)] - private byte[] m_rgchTags_; - public string m_rgchTags // comma separated list of all tags associated with this file - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchTags_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchTags_, Constants.k_cchTagListMax); } - } - // file/url information - public UGCHandle_t m_hFile; // The handle of the primary file - public UGCHandle_t m_hPreviewFile; // The handle of the preview file - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchFilenameMax)] - private byte[] m_pchFileName_; - public string m_pchFileName // The cloud filename of the primary file - { - get { return InteropHelp.ByteArrayToStringUTF8(m_pchFileName_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_pchFileName_, Constants.k_cchFilenameMax); } - } - public int m_nFileSize; // Size of the primary file - public int m_nPreviewFileSize; // Size of the preview file - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchPublishedFileURLMax)] - private byte[] m_rgchURL_; - public string m_rgchURL // URL (for a video or a website) - { - get { return InteropHelp.ByteArrayToStringUTF8(m_rgchURL_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_rgchURL_, Constants.k_cchPublishedFileURLMax); } - } - // voting information - public uint m_unVotesUp; // number of votes up - public uint m_unVotesDown; // number of votes down - public float m_flScore; // calculated score - // collection details - public uint m_unNumChildren; - } - - // a single entry in a leaderboard, as returned by GetDownloadedLeaderboardEntry() - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct LeaderboardEntry_t { - public CSteamID m_steamIDUser; // user with the entry - use SteamFriends()->GetFriendPersonaName() & SteamFriends()->GetFriendAvatar() to get more info - public int m_nGlobalRank; // [1..N], where N is the number of users with an entry in the leaderboard - public int m_nScore; // score as set in the leaderboard - public int m_cDetails; // number of int32 details available for this entry - public UGCHandle_t m_hUGC; // handle for UGC attached to the entry - } - - /// Store key/value pair used in matchmaking queries. - /// - /// Actually, the name Key/Value is a bit misleading. The "key" is better - /// understood as "filter operation code" and the "value" is the operand to this - /// filter operation. The meaning of the operand depends upon the filter. - [StructLayout(LayoutKind.Sequential)] - public struct MatchMakingKeyValuePair_t { - MatchMakingKeyValuePair_t(string strKey, string strValue) { - m_szKey = strKey; - m_szValue = strValue; - } - - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_szKey; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string m_szValue; - } - - // structure that contains client callback data - // see callbacks documentation for more details - /// Internal structure used in manual callback dispatch - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct CallbackMsg_t { - public int m_hSteamUser; // Specific user to whom this callback applies. - public int m_iCallback; // Callback identifier. (Corresponds to the k_iCallback enum in the callback structure.) - public IntPtr m_pubParam; // Points to the callback structure - public int m_cubParam; // Size of the data pointed to by m_pubParam - } - - /// Describe the state of a connection. - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct SteamNetConnectionInfo_t { - - /// Who is on the other end? Depending on the connection type and phase of the connection, we might not know - public SteamNetworkingIdentity m_identityRemote; - - /// Arbitrary user data set by the local application code - public long m_nUserData; - - /// Handle to listen socket this was connected on, or k_HSteamListenSocket_Invalid if we initiated the connection - public HSteamListenSocket m_hListenSocket; - - /// Remote address. Might be all 0's if we don't know it, or if this is N/A. - /// (E.g. Basically everything except direct UDP connection.) - public SteamNetworkingIPAddr m_addrRemote; - public ushort m__pad1; - - /// What data center is the remote host in? (0 if we don't know.) - public SteamNetworkingPOPID m_idPOPRemote; - - /// What relay are we using to communicate with the remote host? - /// (0 if not applicable.) - public SteamNetworkingPOPID m_idPOPRelay; - - /// High level state of the connection - public ESteamNetworkingConnectionState m_eState; - - /// Basic cause of the connection termination or problem. - /// See ESteamNetConnectionEnd for the values used - public int m_eEndReason; - - /// Human-readable, but non-localized explanation for connection - /// termination or problem. This is intended for debugging / - /// diagnostic purposes only, not to display to users. It might - /// have some details specific to the issue. - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchSteamNetworkingMaxConnectionCloseReason)] - private byte[] m_szEndDebug_; - public string m_szEndDebug - { - get { return InteropHelp.ByteArrayToStringUTF8(m_szEndDebug_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_szEndDebug_, Constants.k_cchSteamNetworkingMaxConnectionCloseReason); } - } - - /// Debug description. This includes the internal connection ID, - /// connection type (and peer information), and any name - /// given to the connection by the app. This string is used in various - /// internal logging messages. - /// - /// Note that the connection ID *usually* matches the HSteamNetConnection - /// handle, but in certain cases with symmetric connections it might not. - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchSteamNetworkingMaxConnectionDescription)] - private byte[] m_szConnectionDescription_; - public string m_szConnectionDescription - { - get { return InteropHelp.ByteArrayToStringUTF8(m_szConnectionDescription_); } - set { InteropHelp.StringToByteArrayUTF8(value, m_szConnectionDescription_, Constants.k_cchSteamNetworkingMaxConnectionDescription); } - } - - /// Misc flags. Bitmask of k_nSteamNetworkConnectionInfoFlags_Xxxx - public int m_nFlags; - - /// Internal stuff, room to change API easily - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 63)] - public uint[] reserved; - } - - /// Quick connection state, pared down to something you could call - /// more frequently without it being too big of a perf hit. - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct SteamNetConnectionRealTimeStatus_t { - - /// High level state of the connection - public ESteamNetworkingConnectionState m_eState; - - /// Current ping (ms) - public int m_nPing; - - /// Connection quality measured locally, 0...1. (Percentage of packets delivered - /// end-to-end in order). - public float m_flConnectionQualityLocal; - - /// Packet delivery success rate as observed from remote host - public float m_flConnectionQualityRemote; - - /// Current data rates from recent history. - public float m_flOutPacketsPerSec; - public float m_flOutBytesPerSec; - public float m_flInPacketsPerSec; - public float m_flInBytesPerSec; - - /// Estimate rate that we believe that we can send data to our peer. - /// Note that this could be significantly higher than m_flOutBytesPerSec, - /// meaning the capacity of the channel is higher than you are sending data. - /// (That's OK!) - public int m_nSendRateBytesPerSecond; - - /// Number of bytes pending to be sent. This is data that you have recently - /// requested to be sent but has not yet actually been put on the wire. The - /// reliable number ALSO includes data that was previously placed on the wire, - /// but has now been scheduled for re-transmission. Thus, it's possible to - /// observe m_cbPendingReliable increasing between two checks, even if no - /// calls were made to send reliable data between the checks. Data that is - /// awaiting the Nagle delay will appear in these numbers. - public int m_cbPendingUnreliable; - public int m_cbPendingReliable; - - /// Number of bytes of reliable data that has been placed the wire, but - /// for which we have not yet received an acknowledgment, and thus we may - /// have to re-transmit. - public int m_cbSentUnackedReliable; - - /// If you queued a message right now, approximately how long would that message - /// wait in the queue before we actually started putting its data on the wire in - /// a packet? - /// - /// In general, data that is sent by the application is limited by the bandwidth - /// of the channel. If you send data faster than this, it must be queued and - /// put on the wire at a metered rate. Even sending a small amount of data (e.g. - /// a few MTU, say ~3k) will require some of the data to be delayed a bit. - /// - /// Ignoring multiple lanes, the estimated delay will be approximately equal to - /// - /// ( m_cbPendingUnreliable+m_cbPendingReliable ) / m_nSendRateBytesPerSecond - /// - /// plus or minus one MTU. It depends on how much time has elapsed since the last - /// packet was put on the wire. For example, the queue might have *just* been emptied, - /// and the last packet placed on the wire, and we are exactly up against the send - /// rate limit. In that case we might need to wait for one packet's worth of time to - /// elapse before we can send again. On the other extreme, the queue might have data - /// in it waiting for Nagle. (This will always be less than one packet, because as - /// soon as we have a complete packet we would send it.) In that case, we might be - /// ready to send data now, and this value will be 0. - /// - /// This value is only valid if multiple lanes are not used. If multiple lanes are - /// in use, then the queue time will be different for each lane, and you must use - /// the value in SteamNetConnectionRealTimeLaneStatus_t. - /// - /// Nagle delay is ignored for the purposes of this calculation. - public SteamNetworkingMicroseconds m_usecQueueTime; - - // Internal stuff, room to change API easily - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] - public uint[] reserved; - } - - /// Quick status of a particular lane - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct SteamNetConnectionRealTimeLaneStatus_t { - // Counters for this particular lane. See the corresponding variables - // in SteamNetConnectionRealTimeStatus_t - public int m_cbPendingUnreliable; - public int m_cbPendingReliable; - public int m_cbSentUnackedReliable; - public int _reservePad1; // Reserved for future use - - /// Lane-specific queue time. This value takes into consideration lane priorities - /// and weights, and how much data is queued in each lane, and attempts to predict - /// how any data currently queued will be sent out. - public SteamNetworkingMicroseconds m_usecQueueTime; - - // Internal stuff, room to change API easily - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] - public uint[] reserved; - } - - // - // Ping location / measurement - // - /// Object that describes a "location" on the Internet with sufficient - /// detail that we can reasonably estimate an upper bound on the ping between - /// the two hosts, even if a direct route between the hosts is not possible, - /// and the connection must be routed through the Steam Datagram Relay network. - /// This does not contain any information that identifies the host. Indeed, - /// if two hosts are in the same building or otherwise have nearly identical - /// networking characteristics, then it's valid to use the same location - /// object for both of them. - /// - /// NOTE: This object should only be used in the same process! Do not serialize it, - /// send it over the wire, or persist it in a file or database! If you need - /// to do that, convert it to a string representation using the methods in - /// ISteamNetworkingUtils(). - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct SteamNetworkPingLocation_t { - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 512)] - public byte[] m_data; - } - -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamStructs.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamStructs.cs.meta deleted file mode 100644 index 67739ed..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/SteamStructs.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d968b64f163754c49be340a5b8ddd933 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapplist.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapplist.cs deleted file mode 100644 index 9bff5de..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapplist.cs +++ /dev/null @@ -1,63 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamAppList { - public static uint GetNumInstalledApps() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamAppList_GetNumInstalledApps(CSteamAPIContext.GetSteamAppList()); - } - - public static uint GetInstalledApps(AppId_t[] pvecAppID, uint unMaxAppIDs) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamAppList_GetInstalledApps(CSteamAPIContext.GetSteamAppList(), pvecAppID, unMaxAppIDs); - } - - /// <summary> - /// <para> returns -1 if no name was found</para> - /// </summary> - public static int GetAppName(AppId_t nAppID, out string pchName, int cchNameMax) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchName2 = Marshal.AllocHGlobal(cchNameMax); - int ret = NativeMethods.ISteamAppList_GetAppName(CSteamAPIContext.GetSteamAppList(), nAppID, pchName2, cchNameMax); - pchName = ret != -1 ? InteropHelp.PtrToStringUTF8(pchName2) : null; - Marshal.FreeHGlobal(pchName2); - return ret; - } - - /// <summary> - /// <para> returns -1 if no dir was found</para> - /// </summary> - public static int GetAppInstallDir(AppId_t nAppID, out string pchDirectory, int cchNameMax) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchDirectory2 = Marshal.AllocHGlobal(cchNameMax); - int ret = NativeMethods.ISteamAppList_GetAppInstallDir(CSteamAPIContext.GetSteamAppList(), nAppID, pchDirectory2, cchNameMax); - pchDirectory = ret != -1 ? InteropHelp.PtrToStringUTF8(pchDirectory2) : null; - Marshal.FreeHGlobal(pchDirectory2); - return ret; - } - - /// <summary> - /// <para> return the buildid of this app, may change at any time based on backend updates to the game</para> - /// </summary> - public static int GetAppBuildId(AppId_t nAppID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamAppList_GetAppBuildId(CSteamAPIContext.GetSteamAppList(), nAppID); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapplist.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapplist.cs.meta deleted file mode 100644 index 5b5e0a1..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapplist.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b4c4286d1bfb0ce438e20d1cf8b3fed9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapps.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapps.cs deleted file mode 100644 index 9218b8a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapps.cs +++ /dev/null @@ -1,277 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamApps { - public static bool BIsSubscribed() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_BIsSubscribed(CSteamAPIContext.GetSteamApps()); - } - - public static bool BIsLowViolence() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_BIsLowViolence(CSteamAPIContext.GetSteamApps()); - } - - public static bool BIsCybercafe() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_BIsCybercafe(CSteamAPIContext.GetSteamApps()); - } - - public static bool BIsVACBanned() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_BIsVACBanned(CSteamAPIContext.GetSteamApps()); - } - - public static string GetCurrentGameLanguage() { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamApps_GetCurrentGameLanguage(CSteamAPIContext.GetSteamApps())); - } - - public static string GetAvailableGameLanguages() { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamApps_GetAvailableGameLanguages(CSteamAPIContext.GetSteamApps())); - } - - /// <summary> - /// <para> only use this member if you need to check ownership of another game related to yours, a demo for example</para> - /// </summary> - public static bool BIsSubscribedApp(AppId_t appID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_BIsSubscribedApp(CSteamAPIContext.GetSteamApps(), appID); - } - - /// <summary> - /// <para> Takes AppID of DLC and checks if the user owns the DLC & if the DLC is installed</para> - /// </summary> - public static bool BIsDlcInstalled(AppId_t appID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_BIsDlcInstalled(CSteamAPIContext.GetSteamApps(), appID); - } - - /// <summary> - /// <para> returns the Unix time of the purchase of the app</para> - /// </summary> - public static uint GetEarliestPurchaseUnixTime(AppId_t nAppID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_GetEarliestPurchaseUnixTime(CSteamAPIContext.GetSteamApps(), nAppID); - } - - /// <summary> - /// <para> Checks if the user is subscribed to the current app through a free weekend</para> - /// <para> This function will return false for users who have a retail or other type of license</para> - /// <para> Before using, please ask your Valve technical contact how to package and secure your free weekened</para> - /// </summary> - public static bool BIsSubscribedFromFreeWeekend() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_BIsSubscribedFromFreeWeekend(CSteamAPIContext.GetSteamApps()); - } - - /// <summary> - /// <para> Returns the number of DLC pieces for the running app</para> - /// </summary> - public static int GetDLCCount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_GetDLCCount(CSteamAPIContext.GetSteamApps()); - } - - /// <summary> - /// <para> Returns metadata for DLC by index, of range [0, GetDLCCount()]</para> - /// </summary> - public static bool BGetDLCDataByIndex(int iDLC, out AppId_t pAppID, out bool pbAvailable, out string pchName, int cchNameBufferSize) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchName2 = Marshal.AllocHGlobal(cchNameBufferSize); - bool ret = NativeMethods.ISteamApps_BGetDLCDataByIndex(CSteamAPIContext.GetSteamApps(), iDLC, out pAppID, out pbAvailable, pchName2, cchNameBufferSize); - pchName = ret ? InteropHelp.PtrToStringUTF8(pchName2) : null; - Marshal.FreeHGlobal(pchName2); - return ret; - } - - /// <summary> - /// <para> Install/Uninstall control for optional DLC</para> - /// </summary> - public static void InstallDLC(AppId_t nAppID) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamApps_InstallDLC(CSteamAPIContext.GetSteamApps(), nAppID); - } - - public static void UninstallDLC(AppId_t nAppID) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamApps_UninstallDLC(CSteamAPIContext.GetSteamApps(), nAppID); - } - - /// <summary> - /// <para> Request legacy cd-key for yourself or owned DLC. If you are interested in this</para> - /// <para> data then make sure you provide us with a list of valid keys to be distributed</para> - /// <para> to users when they purchase the game, before the game ships.</para> - /// <para> You'll receive an AppProofOfPurchaseKeyResponse_t callback when</para> - /// <para> the key is available (which may be immediately).</para> - /// </summary> - public static void RequestAppProofOfPurchaseKey(AppId_t nAppID) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamApps_RequestAppProofOfPurchaseKey(CSteamAPIContext.GetSteamApps(), nAppID); - } - - /// <summary> - /// <para> returns current beta branch name, 'public' is the default branch</para> - /// </summary> - public static bool GetCurrentBetaName(out string pchName, int cchNameBufferSize) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchName2 = Marshal.AllocHGlobal(cchNameBufferSize); - bool ret = NativeMethods.ISteamApps_GetCurrentBetaName(CSteamAPIContext.GetSteamApps(), pchName2, cchNameBufferSize); - pchName = ret ? InteropHelp.PtrToStringUTF8(pchName2) : null; - Marshal.FreeHGlobal(pchName2); - return ret; - } - - /// <summary> - /// <para> signal Steam that game files seems corrupt or missing</para> - /// </summary> - public static bool MarkContentCorrupt(bool bMissingFilesOnly) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_MarkContentCorrupt(CSteamAPIContext.GetSteamApps(), bMissingFilesOnly); - } - - /// <summary> - /// <para> return installed depots in mount order</para> - /// </summary> - public static uint GetInstalledDepots(AppId_t appID, DepotId_t[] pvecDepots, uint cMaxDepots) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_GetInstalledDepots(CSteamAPIContext.GetSteamApps(), appID, pvecDepots, cMaxDepots); - } - - /// <summary> - /// <para> returns current app install folder for AppID, returns folder name length</para> - /// </summary> - public static uint GetAppInstallDir(AppId_t appID, out string pchFolder, uint cchFolderBufferSize) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchFolder2 = Marshal.AllocHGlobal((int)cchFolderBufferSize); - uint ret = NativeMethods.ISteamApps_GetAppInstallDir(CSteamAPIContext.GetSteamApps(), appID, pchFolder2, cchFolderBufferSize); - pchFolder = ret != 0 ? InteropHelp.PtrToStringUTF8(pchFolder2) : null; - Marshal.FreeHGlobal(pchFolder2); - return ret; - } - - /// <summary> - /// <para> returns true if that app is installed (not necessarily owned)</para> - /// </summary> - public static bool BIsAppInstalled(AppId_t appID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_BIsAppInstalled(CSteamAPIContext.GetSteamApps(), appID); - } - - /// <summary> - /// <para> returns the SteamID of the original owner. If this CSteamID is different from ISteamUser::GetSteamID(),</para> - /// <para> the user has a temporary license borrowed via Family Sharing</para> - /// </summary> - public static CSteamID GetAppOwner() { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamApps_GetAppOwner(CSteamAPIContext.GetSteamApps()); - } - - /// <summary> - /// <para> Returns the associated launch param if the game is run via steam://run/<appid>//?param1=value1&param2=value2&param3=value3 etc.</para> - /// <para> Parameter names starting with the character '@' are reserved for internal use and will always return and empty string.</para> - /// <para> Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game,</para> - /// <para> but it is advised that you not param names beginning with an underscore for your own features.</para> - /// <para> Check for new launch parameters on callback NewUrlLaunchParameters_t</para> - /// </summary> - public static string GetLaunchQueryParam(string pchKey) { - InteropHelp.TestIfAvailableClient(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) { - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamApps_GetLaunchQueryParam(CSteamAPIContext.GetSteamApps(), pchKey2)); - } - } - - /// <summary> - /// <para> get download progress for optional DLC</para> - /// </summary> - public static bool GetDlcDownloadProgress(AppId_t nAppID, out ulong punBytesDownloaded, out ulong punBytesTotal) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_GetDlcDownloadProgress(CSteamAPIContext.GetSteamApps(), nAppID, out punBytesDownloaded, out punBytesTotal); - } - - /// <summary> - /// <para> return the buildid of this app, may change at any time based on backend updates to the game</para> - /// </summary> - public static int GetAppBuildId() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_GetAppBuildId(CSteamAPIContext.GetSteamApps()); - } - - /// <summary> - /// <para> Request all proof of purchase keys for the calling appid and asociated DLC.</para> - /// <para> A series of AppProofOfPurchaseKeyResponse_t callbacks will be sent with</para> - /// <para> appropriate appid values, ending with a final callback where the m_nAppId</para> - /// <para> member is k_uAppIdInvalid (zero).</para> - /// </summary> - public static void RequestAllProofOfPurchaseKeys() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamApps_RequestAllProofOfPurchaseKeys(CSteamAPIContext.GetSteamApps()); - } - - public static SteamAPICall_t GetFileDetails(string pszFileName) { - InteropHelp.TestIfAvailableClient(); - using (var pszFileName2 = new InteropHelp.UTF8StringHandle(pszFileName)) { - return (SteamAPICall_t)NativeMethods.ISteamApps_GetFileDetails(CSteamAPIContext.GetSteamApps(), pszFileName2); - } - } - - /// <summary> - /// <para> Get command line if game was launched via Steam URL, e.g. steam://run/<appid>//<command line>/.</para> - /// <para> This method of passing a connect string (used when joining via rich presence, accepting an</para> - /// <para> invite, etc) is preferable to passing the connect string on the operating system command</para> - /// <para> line, which is a security risk. In order for rich presence joins to go through this</para> - /// <para> path and not be placed on the OS command line, you must set a value in your app's</para> - /// <para> configuration on Steam. Ask Valve for help with this.</para> - /// <para> If game was already running and launched again, the NewUrlLaunchParameters_t will be fired.</para> - /// </summary> - public static int GetLaunchCommandLine(out string pszCommandLine, int cubCommandLine) { - InteropHelp.TestIfAvailableClient(); - IntPtr pszCommandLine2 = Marshal.AllocHGlobal(cubCommandLine); - int ret = NativeMethods.ISteamApps_GetLaunchCommandLine(CSteamAPIContext.GetSteamApps(), pszCommandLine2, cubCommandLine); - pszCommandLine = ret != -1 ? InteropHelp.PtrToStringUTF8(pszCommandLine2) : null; - Marshal.FreeHGlobal(pszCommandLine2); - return ret; - } - - /// <summary> - /// <para> Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID</para> - /// </summary> - public static bool BIsSubscribedFromFamilySharing() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_BIsSubscribedFromFamilySharing(CSteamAPIContext.GetSteamApps()); - } - - /// <summary> - /// <para> check if game is a timed trial with limited playtime</para> - /// </summary> - public static bool BIsTimedTrial(out uint punSecondsAllowed, out uint punSecondsPlayed) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_BIsTimedTrial(CSteamAPIContext.GetSteamApps(), out punSecondsAllowed, out punSecondsPlayed); - } - - /// <summary> - /// <para> set current DLC AppID being played (or 0 if none). Allows Steam to track usage of major DLC extensions</para> - /// </summary> - public static bool SetDlcContext(AppId_t nAppID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamApps_SetDlcContext(CSteamAPIContext.GetSteamApps(), nAppID); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapps.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapps.cs.meta deleted file mode 100644 index 3c619c1..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamapps.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fc5c59b2b2e521b42a6c112e0497310a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamclient.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamclient.cs deleted file mode 100644 index c0eddac..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamclient.cs +++ /dev/null @@ -1,376 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamClient { - /// <summary> - /// <para> Creates a communication pipe to the Steam client.</para> - /// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para> - /// </summary> - public static HSteamPipe CreateSteamPipe() { - InteropHelp.TestIfAvailableClient(); - return (HSteamPipe)NativeMethods.ISteamClient_CreateSteamPipe(CSteamAPIContext.GetSteamClient()); - } - - /// <summary> - /// <para> Releases a previously created communications pipe</para> - /// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para> - /// </summary> - public static bool BReleaseSteamPipe(HSteamPipe hSteamPipe) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamClient_BReleaseSteamPipe(CSteamAPIContext.GetSteamClient(), hSteamPipe); - } - - /// <summary> - /// <para> connects to an existing global user, failing if none exists</para> - /// <para> used by the game to coordinate with the steamUI</para> - /// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para> - /// </summary> - public static HSteamUser ConnectToGlobalUser(HSteamPipe hSteamPipe) { - InteropHelp.TestIfAvailableClient(); - return (HSteamUser)NativeMethods.ISteamClient_ConnectToGlobalUser(CSteamAPIContext.GetSteamClient(), hSteamPipe); - } - - /// <summary> - /// <para> used by game servers, create a steam user that won't be shared with anyone else</para> - /// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para> - /// </summary> - public static HSteamUser CreateLocalUser(out HSteamPipe phSteamPipe, EAccountType eAccountType) { - InteropHelp.TestIfAvailableClient(); - return (HSteamUser)NativeMethods.ISteamClient_CreateLocalUser(CSteamAPIContext.GetSteamClient(), out phSteamPipe, eAccountType); - } - - /// <summary> - /// <para> removes an allocated user</para> - /// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para> - /// </summary> - public static void ReleaseUser(HSteamPipe hSteamPipe, HSteamUser hUser) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamClient_ReleaseUser(CSteamAPIContext.GetSteamClient(), hSteamPipe, hUser); - } - - /// <summary> - /// <para> retrieves the ISteamUser interface associated with the handle</para> - /// </summary> - public static IntPtr GetISteamUser(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamUser(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> retrieves the ISteamGameServer interface associated with the handle</para> - /// </summary> - public static IntPtr GetISteamGameServer(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamGameServer(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> set the local IP and Port to bind to</para> - /// <para> this must be set before CreateLocalUser()</para> - /// </summary> - public static void SetLocalIPBinding(ref SteamIPAddress_t unIP, ushort usPort) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamClient_SetLocalIPBinding(CSteamAPIContext.GetSteamClient(), ref unIP, usPort); - } - - /// <summary> - /// <para> returns the ISteamFriends interface</para> - /// </summary> - public static IntPtr GetISteamFriends(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamFriends(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the ISteamUtils interface</para> - /// </summary> - public static IntPtr GetISteamUtils(HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamUtils(CSteamAPIContext.GetSteamClient(), hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the ISteamMatchmaking interface</para> - /// </summary> - public static IntPtr GetISteamMatchmaking(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamMatchmaking(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the ISteamMatchmakingServers interface</para> - /// </summary> - public static IntPtr GetISteamMatchmakingServers(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamMatchmakingServers(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the a generic interface</para> - /// </summary> - public static IntPtr GetISteamGenericInterface(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamGenericInterface(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the ISteamUserStats interface</para> - /// </summary> - public static IntPtr GetISteamUserStats(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamUserStats(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the ISteamGameServerStats interface</para> - /// </summary> - public static IntPtr GetISteamGameServerStats(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamGameServerStats(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns apps interface</para> - /// </summary> - public static IntPtr GetISteamApps(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamApps(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> networking</para> - /// </summary> - public static IntPtr GetISteamNetworking(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamNetworking(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> remote storage</para> - /// </summary> - public static IntPtr GetISteamRemoteStorage(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamRemoteStorage(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> user screenshots</para> - /// </summary> - public static IntPtr GetISteamScreenshots(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamScreenshots(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> game search</para> - /// </summary> - public static IntPtr GetISteamGameSearch(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamGameSearch(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the number of IPC calls made since the last time this function was called</para> - /// <para> Used for perf debugging so you can understand how many IPC calls your game makes per frame</para> - /// <para> Every IPC call is at minimum a thread context switch if not a process one so you want to rate</para> - /// <para> control how often you do them.</para> - /// </summary> - public static uint GetIPCCallCount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamClient_GetIPCCallCount(CSteamAPIContext.GetSteamClient()); - } - - /// <summary> - /// <para> API warning handling</para> - /// <para> 'int' is the severity; 0 for msg, 1 for warning</para> - /// <para> 'const char *' is the text of the message</para> - /// <para> callbacks will occur directly after the API function is called that generated the warning or message.</para> - /// </summary> - public static void SetWarningMessageHook(SteamAPIWarningMessageHook_t pFunction) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamClient_SetWarningMessageHook(CSteamAPIContext.GetSteamClient(), pFunction); - } - - /// <summary> - /// <para> Trigger global shutdown for the DLL</para> - /// </summary> - public static bool BShutdownIfAllPipesClosed() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamClient_BShutdownIfAllPipesClosed(CSteamAPIContext.GetSteamClient()); - } - - /// <summary> - /// <para> Expose HTTP interface</para> - /// </summary> - public static IntPtr GetISteamHTTP(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamHTTP(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Exposes the ISteamController interface - deprecated in favor of Steam Input</para> - /// </summary> - public static IntPtr GetISteamController(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamController(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Exposes the ISteamUGC interface</para> - /// </summary> - public static IntPtr GetISteamUGC(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamUGC(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns app list interface, only available on specially registered apps</para> - /// </summary> - public static IntPtr GetISteamAppList(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamAppList(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Music Player</para> - /// </summary> - public static IntPtr GetISteamMusic(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamMusic(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Music Player Remote</para> - /// </summary> - public static IntPtr GetISteamMusicRemote(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamMusicRemote(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> html page display</para> - /// </summary> - public static IntPtr GetISteamHTMLSurface(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamHTMLSurface(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> inventory</para> - /// </summary> - public static IntPtr GetISteamInventory(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamInventory(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Video</para> - /// </summary> - public static IntPtr GetISteamVideo(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamVideo(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Parental controls</para> - /// </summary> - public static IntPtr GetISteamParentalSettings(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamParentalSettings(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Exposes the Steam Input interface for controller support</para> - /// </summary> - public static IntPtr GetISteamInput(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamInput(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Steam Parties interface</para> - /// </summary> - public static IntPtr GetISteamParties(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamParties(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Steam Remote Play interface</para> - /// </summary> - public static IntPtr GetISteamRemotePlay(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableClient(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamRemotePlay(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamclient.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamclient.cs.meta deleted file mode 100644 index 95aeea2..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamclient.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 28457456f70c3ef4ca6c7b08a9c796bd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamfriends.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamfriends.cs deleted file mode 100644 index 025a6ec..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamfriends.cs +++ /dev/null @@ -1,688 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamFriends { - /// <summary> - /// <para> returns the local players name - guaranteed to not be NULL.</para> - /// <para> this is the same name as on the users community profile page</para> - /// <para> this is stored in UTF-8 format</para> - /// <para> like all the other interface functions that return a char *, it's important that this pointer is not saved</para> - /// <para> off; it will eventually be free'd or re-allocated</para> - /// </summary> - public static string GetPersonaName() { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamFriends_GetPersonaName(CSteamAPIContext.GetSteamFriends())); - } - - /// <summary> - /// <para> Sets the player name, stores it on the server and publishes the changes to all friends who are online.</para> - /// <para> Changes take place locally immediately, and a PersonaStateChange_t is posted, presuming success.</para> - /// <para> The final results are available through the return value SteamAPICall_t, using SetPersonaNameResponse_t.</para> - /// <para> If the name change fails to happen on the server, then an additional global PersonaStateChange_t will be posted</para> - /// <para> to change the name back, in addition to the SetPersonaNameResponse_t callback.</para> - /// </summary> - public static SteamAPICall_t SetPersonaName(string pchPersonaName) { - InteropHelp.TestIfAvailableClient(); - using (var pchPersonaName2 = new InteropHelp.UTF8StringHandle(pchPersonaName)) { - return (SteamAPICall_t)NativeMethods.ISteamFriends_SetPersonaName(CSteamAPIContext.GetSteamFriends(), pchPersonaName2); - } - } - - /// <summary> - /// <para> gets the status of the current user</para> - /// </summary> - public static EPersonaState GetPersonaState() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetPersonaState(CSteamAPIContext.GetSteamFriends()); - } - - /// <summary> - /// <para> friend iteration</para> - /// <para> takes a set of k_EFriendFlags, and returns the number of users the client knows about who meet that criteria</para> - /// <para> then GetFriendByIndex() can then be used to return the id's of each of those users</para> - /// </summary> - public static int GetFriendCount(EFriendFlags iFriendFlags) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetFriendCount(CSteamAPIContext.GetSteamFriends(), iFriendFlags); - } - - /// <summary> - /// <para> returns the steamID of a user</para> - /// <para> iFriend is a index of range [0, GetFriendCount())</para> - /// <para> iFriendsFlags must be the same value as used in GetFriendCount()</para> - /// <para> the returned CSteamID can then be used by all the functions below to access details about the user</para> - /// </summary> - public static CSteamID GetFriendByIndex(int iFriend, EFriendFlags iFriendFlags) { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamFriends_GetFriendByIndex(CSteamAPIContext.GetSteamFriends(), iFriend, iFriendFlags); - } - - /// <summary> - /// <para> returns a relationship to a user</para> - /// </summary> - public static EFriendRelationship GetFriendRelationship(CSteamID steamIDFriend) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetFriendRelationship(CSteamAPIContext.GetSteamFriends(), steamIDFriend); - } - - /// <summary> - /// <para> returns the current status of the specified user</para> - /// <para> this will only be known by the local user if steamIDFriend is in their friends list; on the same game server; in a chat room or lobby; or in a small group with the local user</para> - /// </summary> - public static EPersonaState GetFriendPersonaState(CSteamID steamIDFriend) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetFriendPersonaState(CSteamAPIContext.GetSteamFriends(), steamIDFriend); - } - - /// <summary> - /// <para> returns the name another user - guaranteed to not be NULL.</para> - /// <para> same rules as GetFriendPersonaState() apply as to whether or not the user knowns the name of the other user</para> - /// <para> note that on first joining a lobby, chat room or game server the local user will not known the name of the other users automatically; that information will arrive asyncronously</para> - /// </summary> - public static string GetFriendPersonaName(CSteamID steamIDFriend) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamFriends_GetFriendPersonaName(CSteamAPIContext.GetSteamFriends(), steamIDFriend)); - } - - /// <summary> - /// <para> returns true if the friend is actually in a game, and fills in pFriendGameInfo with an extra details</para> - /// </summary> - public static bool GetFriendGamePlayed(CSteamID steamIDFriend, out FriendGameInfo_t pFriendGameInfo) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetFriendGamePlayed(CSteamAPIContext.GetSteamFriends(), steamIDFriend, out pFriendGameInfo); - } - - /// <summary> - /// <para> accesses old friends names - returns an empty string when their are no more items in the history</para> - /// </summary> - public static string GetFriendPersonaNameHistory(CSteamID steamIDFriend, int iPersonaName) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamFriends_GetFriendPersonaNameHistory(CSteamAPIContext.GetSteamFriends(), steamIDFriend, iPersonaName)); - } - - /// <summary> - /// <para> friends steam level</para> - /// </summary> - public static int GetFriendSteamLevel(CSteamID steamIDFriend) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetFriendSteamLevel(CSteamAPIContext.GetSteamFriends(), steamIDFriend); - } - - /// <summary> - /// <para> Returns nickname the current user has set for the specified player. Returns NULL if the no nickname has been set for that player.</para> - /// <para> DEPRECATED: GetPersonaName follows the Steam nickname preferences, so apps shouldn't need to care about nicknames explicitly.</para> - /// </summary> - public static string GetPlayerNickname(CSteamID steamIDPlayer) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamFriends_GetPlayerNickname(CSteamAPIContext.GetSteamFriends(), steamIDPlayer)); - } - - /// <summary> - /// <para> friend grouping (tag) apis</para> - /// <para> returns the number of friends groups</para> - /// </summary> - public static int GetFriendsGroupCount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetFriendsGroupCount(CSteamAPIContext.GetSteamFriends()); - } - - /// <summary> - /// <para> returns the friends group ID for the given index (invalid indices return k_FriendsGroupID_Invalid)</para> - /// </summary> - public static FriendsGroupID_t GetFriendsGroupIDByIndex(int iFG) { - InteropHelp.TestIfAvailableClient(); - return (FriendsGroupID_t)NativeMethods.ISteamFriends_GetFriendsGroupIDByIndex(CSteamAPIContext.GetSteamFriends(), iFG); - } - - /// <summary> - /// <para> returns the name for the given friends group (NULL in the case of invalid friends group IDs)</para> - /// </summary> - public static string GetFriendsGroupName(FriendsGroupID_t friendsGroupID) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamFriends_GetFriendsGroupName(CSteamAPIContext.GetSteamFriends(), friendsGroupID)); - } - - /// <summary> - /// <para> returns the number of members in a given friends group</para> - /// </summary> - public static int GetFriendsGroupMembersCount(FriendsGroupID_t friendsGroupID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetFriendsGroupMembersCount(CSteamAPIContext.GetSteamFriends(), friendsGroupID); - } - - /// <summary> - /// <para> gets up to nMembersCount members of the given friends group, if fewer exist than requested those positions' SteamIDs will be invalid</para> - /// </summary> - public static void GetFriendsGroupMembersList(FriendsGroupID_t friendsGroupID, CSteamID[] pOutSteamIDMembers, int nMembersCount) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamFriends_GetFriendsGroupMembersList(CSteamAPIContext.GetSteamFriends(), friendsGroupID, pOutSteamIDMembers, nMembersCount); - } - - /// <summary> - /// <para> returns true if the specified user meets any of the criteria specified in iFriendFlags</para> - /// <para> iFriendFlags can be the union (binary or, |) of one or more k_EFriendFlags values</para> - /// </summary> - public static bool HasFriend(CSteamID steamIDFriend, EFriendFlags iFriendFlags) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_HasFriend(CSteamAPIContext.GetSteamFriends(), steamIDFriend, iFriendFlags); - } - - /// <summary> - /// <para> clan (group) iteration and access functions</para> - /// </summary> - public static int GetClanCount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetClanCount(CSteamAPIContext.GetSteamFriends()); - } - - public static CSteamID GetClanByIndex(int iClan) { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamFriends_GetClanByIndex(CSteamAPIContext.GetSteamFriends(), iClan); - } - - public static string GetClanName(CSteamID steamIDClan) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamFriends_GetClanName(CSteamAPIContext.GetSteamFriends(), steamIDClan)); - } - - public static string GetClanTag(CSteamID steamIDClan) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamFriends_GetClanTag(CSteamAPIContext.GetSteamFriends(), steamIDClan)); - } - - /// <summary> - /// <para> returns the most recent information we have about what's happening in a clan</para> - /// </summary> - public static bool GetClanActivityCounts(CSteamID steamIDClan, out int pnOnline, out int pnInGame, out int pnChatting) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetClanActivityCounts(CSteamAPIContext.GetSteamFriends(), steamIDClan, out pnOnline, out pnInGame, out pnChatting); - } - - /// <summary> - /// <para> for clans a user is a member of, they will have reasonably up-to-date information, but for others you'll have to download the info to have the latest</para> - /// </summary> - public static SteamAPICall_t DownloadClanActivityCounts(CSteamID[] psteamIDClans, int cClansToRequest) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamFriends_DownloadClanActivityCounts(CSteamAPIContext.GetSteamFriends(), psteamIDClans, cClansToRequest); - } - - /// <summary> - /// <para> iterators for getting users in a chat room, lobby, game server or clan</para> - /// <para> note that large clans that cannot be iterated by the local user</para> - /// <para> note that the current user must be in a lobby to retrieve CSteamIDs of other users in that lobby</para> - /// <para> steamIDSource can be the steamID of a group, game server, lobby or chat room</para> - /// </summary> - public static int GetFriendCountFromSource(CSteamID steamIDSource) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetFriendCountFromSource(CSteamAPIContext.GetSteamFriends(), steamIDSource); - } - - public static CSteamID GetFriendFromSourceByIndex(CSteamID steamIDSource, int iFriend) { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamFriends_GetFriendFromSourceByIndex(CSteamAPIContext.GetSteamFriends(), steamIDSource, iFriend); - } - - /// <summary> - /// <para> returns true if the local user can see that steamIDUser is a member or in steamIDSource</para> - /// </summary> - public static bool IsUserInSource(CSteamID steamIDUser, CSteamID steamIDSource) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_IsUserInSource(CSteamAPIContext.GetSteamFriends(), steamIDUser, steamIDSource); - } - - /// <summary> - /// <para> User is in a game pressing the talk button (will suppress the microphone for all voice comms from the Steam friends UI)</para> - /// </summary> - public static void SetInGameVoiceSpeaking(CSteamID steamIDUser, bool bSpeaking) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamFriends_SetInGameVoiceSpeaking(CSteamAPIContext.GetSteamFriends(), steamIDUser, bSpeaking); - } - - /// <summary> - /// <para> activates the game overlay, with an optional dialog to open</para> - /// <para> valid options include "Friends", "Community", "Players", "Settings", "OfficialGameGroup", "Stats", "Achievements",</para> - /// <para> "chatroomgroup/nnnn"</para> - /// </summary> - public static void ActivateGameOverlay(string pchDialog) { - InteropHelp.TestIfAvailableClient(); - using (var pchDialog2 = new InteropHelp.UTF8StringHandle(pchDialog)) { - NativeMethods.ISteamFriends_ActivateGameOverlay(CSteamAPIContext.GetSteamFriends(), pchDialog2); - } - } - - /// <summary> - /// <para> activates game overlay to a specific place</para> - /// <para> valid options are</para> - /// <para> "steamid" - opens the overlay web browser to the specified user or groups profile</para> - /// <para> "chat" - opens a chat window to the specified user, or joins the group chat</para> - /// <para> "jointrade" - opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API</para> - /// <para> "stats" - opens the overlay web browser to the specified user's stats</para> - /// <para> "achievements" - opens the overlay web browser to the specified user's achievements</para> - /// <para> "friendadd" - opens the overlay in minimal mode prompting the user to add the target user as a friend</para> - /// <para> "friendremove" - opens the overlay in minimal mode prompting the user to remove the target friend</para> - /// <para> "friendrequestaccept" - opens the overlay in minimal mode prompting the user to accept an incoming friend invite</para> - /// <para> "friendrequestignore" - opens the overlay in minimal mode prompting the user to ignore an incoming friend invite</para> - /// </summary> - public static void ActivateGameOverlayToUser(string pchDialog, CSteamID steamID) { - InteropHelp.TestIfAvailableClient(); - using (var pchDialog2 = new InteropHelp.UTF8StringHandle(pchDialog)) { - NativeMethods.ISteamFriends_ActivateGameOverlayToUser(CSteamAPIContext.GetSteamFriends(), pchDialog2, steamID); - } - } - - /// <summary> - /// <para> activates game overlay web browser directly to the specified URL</para> - /// <para> full address with protocol type is required, e.g. http://www.steamgames.com/</para> - /// </summary> - public static void ActivateGameOverlayToWebPage(string pchURL, EActivateGameOverlayToWebPageMode eMode = EActivateGameOverlayToWebPageMode.k_EActivateGameOverlayToWebPageMode_Default) { - InteropHelp.TestIfAvailableClient(); - using (var pchURL2 = new InteropHelp.UTF8StringHandle(pchURL)) { - NativeMethods.ISteamFriends_ActivateGameOverlayToWebPage(CSteamAPIContext.GetSteamFriends(), pchURL2, eMode); - } - } - - /// <summary> - /// <para> activates game overlay to store page for app</para> - /// </summary> - public static void ActivateGameOverlayToStore(AppId_t nAppID, EOverlayToStoreFlag eFlag) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamFriends_ActivateGameOverlayToStore(CSteamAPIContext.GetSteamFriends(), nAppID, eFlag); - } - - /// <summary> - /// <para> Mark a target user as 'played with'. This is a client-side only feature that requires that the calling user is</para> - /// <para> in game</para> - /// </summary> - public static void SetPlayedWith(CSteamID steamIDUserPlayedWith) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamFriends_SetPlayedWith(CSteamAPIContext.GetSteamFriends(), steamIDUserPlayedWith); - } - - /// <summary> - /// <para> activates game overlay to open the invite dialog. Invitations will be sent for the provided lobby.</para> - /// </summary> - public static void ActivateGameOverlayInviteDialog(CSteamID steamIDLobby) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamFriends_ActivateGameOverlayInviteDialog(CSteamAPIContext.GetSteamFriends(), steamIDLobby); - } - - /// <summary> - /// <para> gets the small (32x32) avatar of the current user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if none set</para> - /// </summary> - public static int GetSmallFriendAvatar(CSteamID steamIDFriend) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetSmallFriendAvatar(CSteamAPIContext.GetSteamFriends(), steamIDFriend); - } - - /// <summary> - /// <para> gets the medium (64x64) avatar of the current user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if none set</para> - /// </summary> - public static int GetMediumFriendAvatar(CSteamID steamIDFriend) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetMediumFriendAvatar(CSteamAPIContext.GetSteamFriends(), steamIDFriend); - } - - /// <summary> - /// <para> gets the large (184x184) avatar of the current user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if none set</para> - /// <para> returns -1 if this image has yet to be loaded, in this case wait for a AvatarImageLoaded_t callback and then call this again</para> - /// </summary> - public static int GetLargeFriendAvatar(CSteamID steamIDFriend) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetLargeFriendAvatar(CSteamAPIContext.GetSteamFriends(), steamIDFriend); - } - - /// <summary> - /// <para> requests information about a user - persona name & avatar</para> - /// <para> if bRequireNameOnly is set, then the avatar of a user isn't downloaded</para> - /// <para> - it's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them</para> - /// <para> if returns true, it means that data is being requested, and a PersonaStateChanged_t callback will be posted when it's retrieved</para> - /// <para> if returns false, it means that we already have all the details about that user, and functions can be called immediately</para> - /// </summary> - public static bool RequestUserInformation(CSteamID steamIDUser, bool bRequireNameOnly) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_RequestUserInformation(CSteamAPIContext.GetSteamFriends(), steamIDUser, bRequireNameOnly); - } - - /// <summary> - /// <para> requests information about a clan officer list</para> - /// <para> when complete, data is returned in ClanOfficerListResponse_t call result</para> - /// <para> this makes available the calls below</para> - /// <para> you can only ask about clans that a user is a member of</para> - /// <para> note that this won't download avatars automatically; if you get an officer,</para> - /// <para> and no avatar image is available, call RequestUserInformation( steamID, false ) to download the avatar</para> - /// </summary> - public static SteamAPICall_t RequestClanOfficerList(CSteamID steamIDClan) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamFriends_RequestClanOfficerList(CSteamAPIContext.GetSteamFriends(), steamIDClan); - } - - /// <summary> - /// <para> iteration of clan officers - can only be done when a RequestClanOfficerList() call has completed</para> - /// <para> returns the steamID of the clan owner</para> - /// </summary> - public static CSteamID GetClanOwner(CSteamID steamIDClan) { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamFriends_GetClanOwner(CSteamAPIContext.GetSteamFriends(), steamIDClan); - } - - /// <summary> - /// <para> returns the number of officers in a clan (including the owner)</para> - /// </summary> - public static int GetClanOfficerCount(CSteamID steamIDClan) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetClanOfficerCount(CSteamAPIContext.GetSteamFriends(), steamIDClan); - } - - /// <summary> - /// <para> returns the steamID of a clan officer, by index, of range [0,GetClanOfficerCount)</para> - /// </summary> - public static CSteamID GetClanOfficerByIndex(CSteamID steamIDClan, int iOfficer) { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamFriends_GetClanOfficerByIndex(CSteamAPIContext.GetSteamFriends(), steamIDClan, iOfficer); - } - - /// <summary> - /// <para> if current user is chat restricted, he can't send or receive any text/voice chat messages.</para> - /// <para> the user can't see custom avatars. But the user can be online and send/recv game invites.</para> - /// <para> a chat restricted user can't add friends or join any groups.</para> - /// </summary> - public static uint GetUserRestrictions() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetUserRestrictions(CSteamAPIContext.GetSteamFriends()); - } - - /// <summary> - /// <para> Rich Presence data is automatically shared between friends who are in the same game</para> - /// <para> Each user has a set of Key/Value pairs</para> - /// <para> Note the following limits: k_cchMaxRichPresenceKeys, k_cchMaxRichPresenceKeyLength, k_cchMaxRichPresenceValueLength</para> - /// <para> There are five magic keys:</para> - /// <para> "status" - a UTF-8 string that will show up in the 'view game info' dialog in the Steam friends list</para> - /// <para> "connect" - a UTF-8 string that contains the command-line for how a friend can connect to a game</para> - /// <para> "steam_display" - Names a rich presence localization token that will be displayed in the viewing user's selected language</para> - /// <para> in the Steam client UI. For more info: https://partner.steamgames.com/doc/api/ISteamFriends#richpresencelocalization</para> - /// <para> "steam_player_group" - When set, indicates to the Steam client that the player is a member of a particular group. Players in the same group</para> - /// <para> may be organized together in various places in the Steam UI.</para> - /// <para> "steam_player_group_size" - When set, indicates the total number of players in the steam_player_group. The Steam client may use this number to</para> - /// <para> display additional information about a group when all of the members are not part of a user's friends list.</para> - /// <para> GetFriendRichPresence() returns an empty string "" if no value is set</para> - /// <para> SetRichPresence() to a NULL or an empty string deletes the key</para> - /// <para> You can iterate the current set of keys for a friend with GetFriendRichPresenceKeyCount()</para> - /// <para> and GetFriendRichPresenceKeyByIndex() (typically only used for debugging)</para> - /// </summary> - public static bool SetRichPresence(string pchKey, string pchValue) { - InteropHelp.TestIfAvailableClient(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) - using (var pchValue2 = new InteropHelp.UTF8StringHandle(pchValue)) { - return NativeMethods.ISteamFriends_SetRichPresence(CSteamAPIContext.GetSteamFriends(), pchKey2, pchValue2); - } - } - - public static void ClearRichPresence() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamFriends_ClearRichPresence(CSteamAPIContext.GetSteamFriends()); - } - - public static string GetFriendRichPresence(CSteamID steamIDFriend, string pchKey) { - InteropHelp.TestIfAvailableClient(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) { - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamFriends_GetFriendRichPresence(CSteamAPIContext.GetSteamFriends(), steamIDFriend, pchKey2)); - } - } - - public static int GetFriendRichPresenceKeyCount(CSteamID steamIDFriend) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetFriendRichPresenceKeyCount(CSteamAPIContext.GetSteamFriends(), steamIDFriend); - } - - public static string GetFriendRichPresenceKeyByIndex(CSteamID steamIDFriend, int iKey) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamFriends_GetFriendRichPresenceKeyByIndex(CSteamAPIContext.GetSteamFriends(), steamIDFriend, iKey)); - } - - /// <summary> - /// <para> Requests rich presence for a specific user.</para> - /// </summary> - public static void RequestFriendRichPresence(CSteamID steamIDFriend) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamFriends_RequestFriendRichPresence(CSteamAPIContext.GetSteamFriends(), steamIDFriend); - } - - /// <summary> - /// <para> Rich invite support.</para> - /// <para> If the target accepts the invite, a GameRichPresenceJoinRequested_t callback is posted containing the connect string.</para> - /// <para> (Or you can configure your game so that it is passed on the command line instead. This is a deprecated path; ask us if you really need this.)</para> - /// </summary> - public static bool InviteUserToGame(CSteamID steamIDFriend, string pchConnectString) { - InteropHelp.TestIfAvailableClient(); - using (var pchConnectString2 = new InteropHelp.UTF8StringHandle(pchConnectString)) { - return NativeMethods.ISteamFriends_InviteUserToGame(CSteamAPIContext.GetSteamFriends(), steamIDFriend, pchConnectString2); - } - } - - /// <summary> - /// <para> recently-played-with friends iteration</para> - /// <para> this iterates the entire list of users recently played with, across games</para> - /// <para> GetFriendCoplayTime() returns as a unix time</para> - /// </summary> - public static int GetCoplayFriendCount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetCoplayFriendCount(CSteamAPIContext.GetSteamFriends()); - } - - public static CSteamID GetCoplayFriend(int iCoplayFriend) { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamFriends_GetCoplayFriend(CSteamAPIContext.GetSteamFriends(), iCoplayFriend); - } - - public static int GetFriendCoplayTime(CSteamID steamIDFriend) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetFriendCoplayTime(CSteamAPIContext.GetSteamFriends(), steamIDFriend); - } - - public static AppId_t GetFriendCoplayGame(CSteamID steamIDFriend) { - InteropHelp.TestIfAvailableClient(); - return (AppId_t)NativeMethods.ISteamFriends_GetFriendCoplayGame(CSteamAPIContext.GetSteamFriends(), steamIDFriend); - } - - /// <summary> - /// <para> chat interface for games</para> - /// <para> this allows in-game access to group (clan) chats from in the game</para> - /// <para> the behavior is somewhat sophisticated, because the user may or may not be already in the group chat from outside the game or in the overlay</para> - /// <para> use ActivateGameOverlayToUser( "chat", steamIDClan ) to open the in-game overlay version of the chat</para> - /// </summary> - public static SteamAPICall_t JoinClanChatRoom(CSteamID steamIDClan) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamFriends_JoinClanChatRoom(CSteamAPIContext.GetSteamFriends(), steamIDClan); - } - - public static bool LeaveClanChatRoom(CSteamID steamIDClan) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_LeaveClanChatRoom(CSteamAPIContext.GetSteamFriends(), steamIDClan); - } - - public static int GetClanChatMemberCount(CSteamID steamIDClan) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetClanChatMemberCount(CSteamAPIContext.GetSteamFriends(), steamIDClan); - } - - public static CSteamID GetChatMemberByIndex(CSteamID steamIDClan, int iUser) { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamFriends_GetChatMemberByIndex(CSteamAPIContext.GetSteamFriends(), steamIDClan, iUser); - } - - public static bool SendClanChatMessage(CSteamID steamIDClanChat, string pchText) { - InteropHelp.TestIfAvailableClient(); - using (var pchText2 = new InteropHelp.UTF8StringHandle(pchText)) { - return NativeMethods.ISteamFriends_SendClanChatMessage(CSteamAPIContext.GetSteamFriends(), steamIDClanChat, pchText2); - } - } - - public static int GetClanChatMessage(CSteamID steamIDClanChat, int iMessage, out string prgchText, int cchTextMax, out EChatEntryType peChatEntryType, out CSteamID psteamidChatter) { - InteropHelp.TestIfAvailableClient(); - IntPtr prgchText2 = Marshal.AllocHGlobal(cchTextMax); - int ret = NativeMethods.ISteamFriends_GetClanChatMessage(CSteamAPIContext.GetSteamFriends(), steamIDClanChat, iMessage, prgchText2, cchTextMax, out peChatEntryType, out psteamidChatter); - prgchText = ret != 0 ? InteropHelp.PtrToStringUTF8(prgchText2) : null; - Marshal.FreeHGlobal(prgchText2); - return ret; - } - - public static bool IsClanChatAdmin(CSteamID steamIDClanChat, CSteamID steamIDUser) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_IsClanChatAdmin(CSteamAPIContext.GetSteamFriends(), steamIDClanChat, steamIDUser); - } - - /// <summary> - /// <para> interact with the Steam (game overlay / desktop)</para> - /// </summary> - public static bool IsClanChatWindowOpenInSteam(CSteamID steamIDClanChat) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_IsClanChatWindowOpenInSteam(CSteamAPIContext.GetSteamFriends(), steamIDClanChat); - } - - public static bool OpenClanChatWindowInSteam(CSteamID steamIDClanChat) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_OpenClanChatWindowInSteam(CSteamAPIContext.GetSteamFriends(), steamIDClanChat); - } - - public static bool CloseClanChatWindowInSteam(CSteamID steamIDClanChat) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_CloseClanChatWindowInSteam(CSteamAPIContext.GetSteamFriends(), steamIDClanChat); - } - - /// <summary> - /// <para> peer-to-peer chat interception</para> - /// <para> this is so you can show P2P chats inline in the game</para> - /// </summary> - public static bool SetListenForFriendsMessages(bool bInterceptEnabled) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_SetListenForFriendsMessages(CSteamAPIContext.GetSteamFriends(), bInterceptEnabled); - } - - public static bool ReplyToFriendMessage(CSteamID steamIDFriend, string pchMsgToSend) { - InteropHelp.TestIfAvailableClient(); - using (var pchMsgToSend2 = new InteropHelp.UTF8StringHandle(pchMsgToSend)) { - return NativeMethods.ISteamFriends_ReplyToFriendMessage(CSteamAPIContext.GetSteamFriends(), steamIDFriend, pchMsgToSend2); - } - } - - public static int GetFriendMessage(CSteamID steamIDFriend, int iMessageID, out string pvData, int cubData, out EChatEntryType peChatEntryType) { - InteropHelp.TestIfAvailableClient(); - IntPtr pvData2 = Marshal.AllocHGlobal(cubData); - int ret = NativeMethods.ISteamFriends_GetFriendMessage(CSteamAPIContext.GetSteamFriends(), steamIDFriend, iMessageID, pvData2, cubData, out peChatEntryType); - pvData = ret != 0 ? InteropHelp.PtrToStringUTF8(pvData2) : null; - Marshal.FreeHGlobal(pvData2); - return ret; - } - - /// <summary> - /// <para> following apis</para> - /// </summary> - public static SteamAPICall_t GetFollowerCount(CSteamID steamID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamFriends_GetFollowerCount(CSteamAPIContext.GetSteamFriends(), steamID); - } - - public static SteamAPICall_t IsFollowing(CSteamID steamID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamFriends_IsFollowing(CSteamAPIContext.GetSteamFriends(), steamID); - } - - public static SteamAPICall_t EnumerateFollowingList(uint unStartIndex) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamFriends_EnumerateFollowingList(CSteamAPIContext.GetSteamFriends(), unStartIndex); - } - - public static bool IsClanPublic(CSteamID steamIDClan) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_IsClanPublic(CSteamAPIContext.GetSteamFriends(), steamIDClan); - } - - public static bool IsClanOfficialGameGroup(CSteamID steamIDClan) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_IsClanOfficialGameGroup(CSteamAPIContext.GetSteamFriends(), steamIDClan); - } - - /// <summary> - /// <para>/ Return the number of chats (friends or chat rooms) with unread messages.</para> - /// <para>/ A "priority" message is one that would generate some sort of toast or</para> - /// <para>/ notification, and depends on user settings.</para> - /// <para>/</para> - /// <para>/ You can register for UnreadChatMessagesChanged_t callbacks to know when this</para> - /// <para>/ has potentially changed.</para> - /// </summary> - public static int GetNumChatsWithUnreadPriorityMessages() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetNumChatsWithUnreadPriorityMessages(CSteamAPIContext.GetSteamFriends()); - } - - /// <summary> - /// <para> activates game overlay to open the remote play together invite dialog. Invitations will be sent for remote play together</para> - /// </summary> - public static void ActivateGameOverlayRemotePlayTogetherInviteDialog(CSteamID steamIDLobby) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamFriends_ActivateGameOverlayRemotePlayTogetherInviteDialog(CSteamAPIContext.GetSteamFriends(), steamIDLobby); - } - - /// <summary> - /// <para> Call this before calling ActivateGameOverlayToWebPage() to have the Steam Overlay Browser block navigations</para> - /// <para> to your specified protocol (scheme) uris and instead dispatch a OverlayBrowserProtocolNavigation_t callback to your game.</para> - /// <para> ActivateGameOverlayToWebPage() must have been called with k_EActivateGameOverlayToWebPageMode_Modal</para> - /// </summary> - public static bool RegisterProtocolInOverlayBrowser(string pchProtocol) { - InteropHelp.TestIfAvailableClient(); - using (var pchProtocol2 = new InteropHelp.UTF8StringHandle(pchProtocol)) { - return NativeMethods.ISteamFriends_RegisterProtocolInOverlayBrowser(CSteamAPIContext.GetSteamFriends(), pchProtocol2); - } - } - - /// <summary> - /// <para> Activates the game overlay to open an invite dialog that will send the provided Rich Presence connect string to selected friends</para> - /// </summary> - public static void ActivateGameOverlayInviteDialogConnectString(string pchConnectString) { - InteropHelp.TestIfAvailableClient(); - using (var pchConnectString2 = new InteropHelp.UTF8StringHandle(pchConnectString)) { - NativeMethods.ISteamFriends_ActivateGameOverlayInviteDialogConnectString(CSteamAPIContext.GetSteamFriends(), pchConnectString2); - } - } - - /// <summary> - /// <para> Steam Community items equipped by a user on their profile</para> - /// <para> You can register for EquippedProfileItemsChanged_t to know when a friend has changed their equipped profile items</para> - /// </summary> - public static SteamAPICall_t RequestEquippedProfileItems(CSteamID steamID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamFriends_RequestEquippedProfileItems(CSteamAPIContext.GetSteamFriends(), steamID); - } - - public static bool BHasEquippedProfileItem(CSteamID steamID, ECommunityProfileItemType itemType) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_BHasEquippedProfileItem(CSteamAPIContext.GetSteamFriends(), steamID, itemType); - } - - public static string GetProfileItemPropertyString(CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamFriends_GetProfileItemPropertyString(CSteamAPIContext.GetSteamFriends(), steamID, itemType, prop)); - } - - public static uint GetProfileItemPropertyUint(CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamFriends_GetProfileItemPropertyUint(CSteamAPIContext.GetSteamFriends(), steamID, itemType, prop); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamfriends.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamfriends.cs.meta deleted file mode 100644 index ec16dfe..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamfriends.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ff71573e5261b1e45a0db0451c6d7af4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserver.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserver.cs deleted file mode 100644 index 2a6692b..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserver.cs +++ /dev/null @@ -1,450 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamGameServer { - /// <summary> - /// <para>/ Game product identifier. This is currently used by the master server for version checking purposes.</para> - /// <para>/ It's a required field, but will eventually will go away, and the AppID will be used for this purpose.</para> - /// </summary> - public static void SetProduct(string pszProduct) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszProduct2 = new InteropHelp.UTF8StringHandle(pszProduct)) { - NativeMethods.ISteamGameServer_SetProduct(CSteamGameServerAPIContext.GetSteamGameServer(), pszProduct2); - } - } - - /// <summary> - /// <para>/ Description of the game. This is a required field and is displayed in the steam server browser....for now.</para> - /// <para>/ This is a required field, but it will go away eventually, as the data should be determined from the AppID.</para> - /// </summary> - public static void SetGameDescription(string pszGameDescription) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszGameDescription2 = new InteropHelp.UTF8StringHandle(pszGameDescription)) { - NativeMethods.ISteamGameServer_SetGameDescription(CSteamGameServerAPIContext.GetSteamGameServer(), pszGameDescription2); - } - } - - /// <summary> - /// <para>/ If your game is a "mod," pass the string that identifies it. The default is an empty string, meaning</para> - /// <para>/ this application is the original game, not a mod.</para> - /// <para>/</para> - /// <para>/ @see k_cbMaxGameServerGameDir</para> - /// </summary> - public static void SetModDir(string pszModDir) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszModDir2 = new InteropHelp.UTF8StringHandle(pszModDir)) { - NativeMethods.ISteamGameServer_SetModDir(CSteamGameServerAPIContext.GetSteamGameServer(), pszModDir2); - } - } - - /// <summary> - /// <para>/ Is this is a dedicated server? The default value is false.</para> - /// </summary> - public static void SetDedicatedServer(bool bDedicated) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_SetDedicatedServer(CSteamGameServerAPIContext.GetSteamGameServer(), bDedicated); - } - - /// <summary> - /// <para> Login</para> - /// <para>/ Begin process to login to a persistent game server account</para> - /// <para>/</para> - /// <para>/ You need to register for callbacks to determine the result of this operation.</para> - /// <para>/ @see SteamServersConnected_t</para> - /// <para>/ @see SteamServerConnectFailure_t</para> - /// <para>/ @see SteamServersDisconnected_t</para> - /// </summary> - public static void LogOn(string pszToken) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszToken2 = new InteropHelp.UTF8StringHandle(pszToken)) { - NativeMethods.ISteamGameServer_LogOn(CSteamGameServerAPIContext.GetSteamGameServer(), pszToken2); - } - } - - /// <summary> - /// <para>/ Login to a generic, anonymous account.</para> - /// <para>/</para> - /// <para>/ Note: in previous versions of the SDK, this was automatically called within SteamGameServer_Init,</para> - /// <para>/ but this is no longer the case.</para> - /// </summary> - public static void LogOnAnonymous() { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_LogOnAnonymous(CSteamGameServerAPIContext.GetSteamGameServer()); - } - - /// <summary> - /// <para>/ Begin process of logging game server out of steam</para> - /// </summary> - public static void LogOff() { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_LogOff(CSteamGameServerAPIContext.GetSteamGameServer()); - } - - /// <summary> - /// <para> status functions</para> - /// </summary> - public static bool BLoggedOn() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamGameServer_BLoggedOn(CSteamGameServerAPIContext.GetSteamGameServer()); - } - - public static bool BSecure() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamGameServer_BSecure(CSteamGameServerAPIContext.GetSteamGameServer()); - } - - public static CSteamID GetSteamID() { - InteropHelp.TestIfAvailableGameServer(); - return (CSteamID)NativeMethods.ISteamGameServer_GetSteamID(CSteamGameServerAPIContext.GetSteamGameServer()); - } - - /// <summary> - /// <para>/ Returns true if the master server has requested a restart.</para> - /// <para>/ Only returns true once per request.</para> - /// </summary> - public static bool WasRestartRequested() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamGameServer_WasRestartRequested(CSteamGameServerAPIContext.GetSteamGameServer()); - } - - /// <summary> - /// <para> Server state. These properties may be changed at any time.</para> - /// <para>/ Max player count that will be reported to server browser and client queries</para> - /// </summary> - public static void SetMaxPlayerCount(int cPlayersMax) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_SetMaxPlayerCount(CSteamGameServerAPIContext.GetSteamGameServer(), cPlayersMax); - } - - /// <summary> - /// <para>/ Number of bots. Default value is zero</para> - /// </summary> - public static void SetBotPlayerCount(int cBotplayers) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_SetBotPlayerCount(CSteamGameServerAPIContext.GetSteamGameServer(), cBotplayers); - } - - /// <summary> - /// <para>/ Set the name of server as it will appear in the server browser</para> - /// <para>/</para> - /// <para>/ @see k_cbMaxGameServerName</para> - /// </summary> - public static void SetServerName(string pszServerName) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszServerName2 = new InteropHelp.UTF8StringHandle(pszServerName)) { - NativeMethods.ISteamGameServer_SetServerName(CSteamGameServerAPIContext.GetSteamGameServer(), pszServerName2); - } - } - - /// <summary> - /// <para>/ Set name of map to report in the server browser</para> - /// <para>/</para> - /// <para>/ @see k_cbMaxGameServerMapName</para> - /// </summary> - public static void SetMapName(string pszMapName) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszMapName2 = new InteropHelp.UTF8StringHandle(pszMapName)) { - NativeMethods.ISteamGameServer_SetMapName(CSteamGameServerAPIContext.GetSteamGameServer(), pszMapName2); - } - } - - /// <summary> - /// <para>/ Let people know if your server will require a password</para> - /// </summary> - public static void SetPasswordProtected(bool bPasswordProtected) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_SetPasswordProtected(CSteamGameServerAPIContext.GetSteamGameServer(), bPasswordProtected); - } - - /// <summary> - /// <para>/ Spectator server port to advertise. The default value is zero, meaning the</para> - /// <para>/ service is not used. If your server receives any info requests on the LAN,</para> - /// <para>/ this is the value that will be placed into the reply for such local queries.</para> - /// <para>/</para> - /// <para>/ This is also the value that will be advertised by the master server.</para> - /// <para>/ The only exception is if your server is using a FakeIP. Then then the second</para> - /// <para>/ fake port number (index 1) assigned to your server will be listed on the master</para> - /// <para>/ server as the spectator port, if you set this value to any nonzero value.</para> - /// <para>/</para> - /// <para>/ This function merely controls the values that are advertised -- it's up to you to</para> - /// <para>/ configure the server to actually listen on this port and handle any spectator traffic</para> - /// </summary> - public static void SetSpectatorPort(ushort unSpectatorPort) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_SetSpectatorPort(CSteamGameServerAPIContext.GetSteamGameServer(), unSpectatorPort); - } - - /// <summary> - /// <para>/ Name of the spectator server. (Only used if spectator port is nonzero.)</para> - /// <para>/</para> - /// <para>/ @see k_cbMaxGameServerMapName</para> - /// </summary> - public static void SetSpectatorServerName(string pszSpectatorServerName) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszSpectatorServerName2 = new InteropHelp.UTF8StringHandle(pszSpectatorServerName)) { - NativeMethods.ISteamGameServer_SetSpectatorServerName(CSteamGameServerAPIContext.GetSteamGameServer(), pszSpectatorServerName2); - } - } - - /// <summary> - /// <para>/ Call this to clear the whole list of key/values that are sent in rules queries.</para> - /// </summary> - public static void ClearAllKeyValues() { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_ClearAllKeyValues(CSteamGameServerAPIContext.GetSteamGameServer()); - } - - /// <summary> - /// <para>/ Call this to add/update a key/value pair.</para> - /// </summary> - public static void SetKeyValue(string pKey, string pValue) { - InteropHelp.TestIfAvailableGameServer(); - using (var pKey2 = new InteropHelp.UTF8StringHandle(pKey)) - using (var pValue2 = new InteropHelp.UTF8StringHandle(pValue)) { - NativeMethods.ISteamGameServer_SetKeyValue(CSteamGameServerAPIContext.GetSteamGameServer(), pKey2, pValue2); - } - } - - /// <summary> - /// <para>/ Sets a string defining the "gametags" for this server, this is optional, but if it is set</para> - /// <para>/ it allows users to filter in the matchmaking/server-browser interfaces based on the value</para> - /// <para>/</para> - /// <para>/ @see k_cbMaxGameServerTags</para> - /// </summary> - public static void SetGameTags(string pchGameTags) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchGameTags2 = new InteropHelp.UTF8StringHandle(pchGameTags)) { - NativeMethods.ISteamGameServer_SetGameTags(CSteamGameServerAPIContext.GetSteamGameServer(), pchGameTags2); - } - } - - /// <summary> - /// <para>/ Sets a string defining the "gamedata" for this server, this is optional, but if it is set</para> - /// <para>/ it allows users to filter in the matchmaking/server-browser interfaces based on the value</para> - /// <para>/</para> - /// <para>/ @see k_cbMaxGameServerGameData</para> - /// </summary> - public static void SetGameData(string pchGameData) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchGameData2 = new InteropHelp.UTF8StringHandle(pchGameData)) { - NativeMethods.ISteamGameServer_SetGameData(CSteamGameServerAPIContext.GetSteamGameServer(), pchGameData2); - } - } - - /// <summary> - /// <para>/ Region identifier. This is an optional field, the default value is empty, meaning the "world" region</para> - /// </summary> - public static void SetRegion(string pszRegion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszRegion2 = new InteropHelp.UTF8StringHandle(pszRegion)) { - NativeMethods.ISteamGameServer_SetRegion(CSteamGameServerAPIContext.GetSteamGameServer(), pszRegion2); - } - } - - /// <summary> - /// <para>/ Indicate whether you wish to be listed on the master server list</para> - /// <para>/ and/or respond to server browser / LAN discovery packets.</para> - /// <para>/ The server starts with this value set to false. You should set all</para> - /// <para>/ relevant server parameters before enabling advertisement on the server.</para> - /// <para>/</para> - /// <para>/ (This function used to be named EnableHeartbeats, so if you are wondering</para> - /// <para>/ where that function went, it's right here. It does the same thing as before,</para> - /// <para>/ the old name was just confusing.)</para> - /// </summary> - public static void SetAdvertiseServerActive(bool bActive) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_SetAdvertiseServerActive(CSteamGameServerAPIContext.GetSteamGameServer(), bActive); - } - - /// <summary> - /// <para> Player list management / authentication.</para> - /// <para> Retrieve ticket to be sent to the entity who wishes to authenticate you ( using BeginAuthSession API ).</para> - /// <para> pcbTicket retrieves the length of the actual ticket.</para> - /// <para> SteamNetworkingIdentity is an optional parameter to hold the public IP address of the entity you are connecting to</para> - /// <para> if an IP address is passed Steam will only allow the ticket to be used by an entity with that IP address</para> - /// </summary> - public static HAuthTicket GetAuthSessionTicket(byte[] pTicket, int cbMaxTicket, out uint pcbTicket, ref SteamNetworkingIdentity pSnid) { - InteropHelp.TestIfAvailableGameServer(); - return (HAuthTicket)NativeMethods.ISteamGameServer_GetAuthSessionTicket(CSteamGameServerAPIContext.GetSteamGameServer(), pTicket, cbMaxTicket, out pcbTicket, ref pSnid); - } - - /// <summary> - /// <para> Authenticate ticket ( from GetAuthSessionTicket ) from entity steamID to be sure it is valid and isnt reused</para> - /// <para> Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse )</para> - /// </summary> - public static EBeginAuthSessionResult BeginAuthSession(byte[] pAuthTicket, int cbAuthTicket, CSteamID steamID) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamGameServer_BeginAuthSession(CSteamGameServerAPIContext.GetSteamGameServer(), pAuthTicket, cbAuthTicket, steamID); - } - - /// <summary> - /// <para> Stop tracking started by BeginAuthSession - called when no longer playing game with this entity</para> - /// </summary> - public static void EndAuthSession(CSteamID steamID) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_EndAuthSession(CSteamGameServerAPIContext.GetSteamGameServer(), steamID); - } - - /// <summary> - /// <para> Cancel auth ticket from GetAuthSessionTicket, called when no longer playing game with the entity you gave the ticket to</para> - /// </summary> - public static void CancelAuthTicket(HAuthTicket hAuthTicket) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_CancelAuthTicket(CSteamGameServerAPIContext.GetSteamGameServer(), hAuthTicket); - } - - /// <summary> - /// <para> After receiving a user's authentication data, and passing it to SendUserConnectAndAuthenticate, use this function</para> - /// <para> to determine if the user owns downloadable content specified by the provided AppID.</para> - /// </summary> - public static EUserHasLicenseForAppResult UserHasLicenseForApp(CSteamID steamID, AppId_t appID) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamGameServer_UserHasLicenseForApp(CSteamGameServerAPIContext.GetSteamGameServer(), steamID, appID); - } - - /// <summary> - /// <para> Ask if a user in in the specified group, results returns async by GSUserGroupStatus_t</para> - /// <para> returns false if we're not connected to the steam servers and thus cannot ask</para> - /// </summary> - public static bool RequestUserGroupStatus(CSteamID steamIDUser, CSteamID steamIDGroup) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamGameServer_RequestUserGroupStatus(CSteamGameServerAPIContext.GetSteamGameServer(), steamIDUser, steamIDGroup); - } - - /// <summary> - /// <para> these two functions s are deprecated, and will not return results</para> - /// <para> they will be removed in a future version of the SDK</para> - /// </summary> - public static void GetGameplayStats() { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_GetGameplayStats(CSteamGameServerAPIContext.GetSteamGameServer()); - } - - public static SteamAPICall_t GetServerReputation() { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamGameServer_GetServerReputation(CSteamGameServerAPIContext.GetSteamGameServer()); - } - - /// <summary> - /// <para> Returns the public IP of the server according to Steam, useful when the server is</para> - /// <para> behind NAT and you want to advertise its IP in a lobby for other clients to directly</para> - /// <para> connect to</para> - /// </summary> - public static SteamIPAddress_t GetPublicIP() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamGameServer_GetPublicIP(CSteamGameServerAPIContext.GetSteamGameServer()); - } - - /// <summary> - /// <para> Server browser related query packet processing for shared socket mode. These are used</para> - /// <para> when you pass STEAMGAMESERVER_QUERY_PORT_SHARED as the query port to SteamGameServer_Init.</para> - /// <para> IP address and port are in host order, i.e 127.0.0.1 == 0x7f000001</para> - /// <para> These are used when you've elected to multiplex the game server's UDP socket</para> - /// <para> rather than having the master server updater use its own sockets.</para> - /// <para> Source games use this to simplify the job of the server admins, so they</para> - /// <para> don't have to open up more ports on their firewalls.</para> - /// <para> Call this when a packet that starts with 0xFFFFFFFF comes in. That means</para> - /// <para> it's for us.</para> - /// </summary> - public static bool HandleIncomingPacket(byte[] pData, int cbData, uint srcIP, ushort srcPort) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamGameServer_HandleIncomingPacket(CSteamGameServerAPIContext.GetSteamGameServer(), pData, cbData, srcIP, srcPort); - } - - /// <summary> - /// <para> AFTER calling HandleIncomingPacket for any packets that came in that frame, call this.</para> - /// <para> This gets a packet that the master server updater needs to send out on UDP.</para> - /// <para> It returns the length of the packet it wants to send, or 0 if there are no more packets to send.</para> - /// <para> Call this each frame until it returns 0.</para> - /// </summary> - public static int GetNextOutgoingPacket(byte[] pOut, int cbMaxOut, out uint pNetAdr, out ushort pPort) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamGameServer_GetNextOutgoingPacket(CSteamGameServerAPIContext.GetSteamGameServer(), pOut, cbMaxOut, out pNetAdr, out pPort); - } - - /// <summary> - /// <para> Server clan association</para> - /// <para> associate this game server with this clan for the purposes of computing player compat</para> - /// </summary> - public static SteamAPICall_t AssociateWithClan(CSteamID steamIDClan) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamGameServer_AssociateWithClan(CSteamGameServerAPIContext.GetSteamGameServer(), steamIDClan); - } - - /// <summary> - /// <para> ask if any of the current players dont want to play with this new player - or vice versa</para> - /// </summary> - public static SteamAPICall_t ComputeNewPlayerCompatibility(CSteamID steamIDNewPlayer) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamGameServer_ComputeNewPlayerCompatibility(CSteamGameServerAPIContext.GetSteamGameServer(), steamIDNewPlayer); - } - - /// <summary> - /// <para> Handles receiving a new connection from a Steam user. This call will ask the Steam</para> - /// <para> servers to validate the users identity, app ownership, and VAC status. If the Steam servers</para> - /// <para> are off-line, then it will validate the cached ticket itself which will validate app ownership</para> - /// <para> and identity. The AuthBlob here should be acquired on the game client using SteamUser()->InitiateGameConnection()</para> - /// <para> and must then be sent up to the game server for authentication.</para> - /// <para> Return Value: returns true if the users ticket passes basic checks. pSteamIDUser will contain the Steam ID of this user. pSteamIDUser must NOT be NULL</para> - /// <para> If the call succeeds then you should expect a GSClientApprove_t or GSClientDeny_t callback which will tell you whether authentication</para> - /// <para> for the user has succeeded or failed (the steamid in the callback will match the one returned by this call)</para> - /// <para> DEPRECATED! This function will be removed from the SDK in an upcoming version.</para> - /// <para> Please migrate to BeginAuthSession and related functions.</para> - /// </summary> - public static bool SendUserConnectAndAuthenticate_DEPRECATED(uint unIPClient, byte[] pvAuthBlob, uint cubAuthBlobSize, out CSteamID pSteamIDUser) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamGameServer_SendUserConnectAndAuthenticate_DEPRECATED(CSteamGameServerAPIContext.GetSteamGameServer(), unIPClient, pvAuthBlob, cubAuthBlobSize, out pSteamIDUser); - } - - /// <summary> - /// <para> Creates a fake user (ie, a bot) which will be listed as playing on the server, but skips validation.</para> - /// <para> Return Value: Returns a SteamID for the user to be tracked with, you should call EndAuthSession()</para> - /// <para> when this user leaves the server just like you would for a real user.</para> - /// </summary> - public static CSteamID CreateUnauthenticatedUserConnection() { - InteropHelp.TestIfAvailableGameServer(); - return (CSteamID)NativeMethods.ISteamGameServer_CreateUnauthenticatedUserConnection(CSteamGameServerAPIContext.GetSteamGameServer()); - } - - /// <summary> - /// <para> Should be called whenever a user leaves our game server, this lets Steam internally</para> - /// <para> track which users are currently on which servers for the purposes of preventing a single</para> - /// <para> account being logged into multiple servers, showing who is currently on a server, etc.</para> - /// <para> DEPRECATED! This function will be removed from the SDK in an upcoming version.</para> - /// <para> Please migrate to BeginAuthSession and related functions.</para> - /// </summary> - public static void SendUserDisconnect_DEPRECATED(CSteamID steamIDUser) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamGameServer_SendUserDisconnect_DEPRECATED(CSteamGameServerAPIContext.GetSteamGameServer(), steamIDUser); - } - - /// <summary> - /// <para> Update the data to be displayed in the server browser and matchmaking interfaces for a user</para> - /// <para> currently connected to the server. For regular users you must call this after you receive a</para> - /// <para> GSUserValidationSuccess callback.</para> - /// <para> Return Value: true if successful, false if failure (ie, steamIDUser wasn't for an active player)</para> - /// </summary> - public static bool BUpdateUserData(CSteamID steamIDUser, string pchPlayerName, uint uScore) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchPlayerName2 = new InteropHelp.UTF8StringHandle(pchPlayerName)) { - return NativeMethods.ISteamGameServer_BUpdateUserData(CSteamGameServerAPIContext.GetSteamGameServer(), steamIDUser, pchPlayerName2, uScore); - } - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserver.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserver.cs.meta deleted file mode 100644 index ddc62f1..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserver.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8c4257f3ef3cd614f8137738c4a58d8a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverclient.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverclient.cs deleted file mode 100644 index 0c41cff..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverclient.cs +++ /dev/null @@ -1,376 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamGameServerClient { - /// <summary> - /// <para> Creates a communication pipe to the Steam client.</para> - /// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para> - /// </summary> - public static HSteamPipe CreateSteamPipe() { - InteropHelp.TestIfAvailableGameServer(); - return (HSteamPipe)NativeMethods.ISteamClient_CreateSteamPipe(CSteamGameServerAPIContext.GetSteamClient()); - } - - /// <summary> - /// <para> Releases a previously created communications pipe</para> - /// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para> - /// </summary> - public static bool BReleaseSteamPipe(HSteamPipe hSteamPipe) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamClient_BReleaseSteamPipe(CSteamGameServerAPIContext.GetSteamClient(), hSteamPipe); - } - - /// <summary> - /// <para> connects to an existing global user, failing if none exists</para> - /// <para> used by the game to coordinate with the steamUI</para> - /// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para> - /// </summary> - public static HSteamUser ConnectToGlobalUser(HSteamPipe hSteamPipe) { - InteropHelp.TestIfAvailableGameServer(); - return (HSteamUser)NativeMethods.ISteamClient_ConnectToGlobalUser(CSteamGameServerAPIContext.GetSteamClient(), hSteamPipe); - } - - /// <summary> - /// <para> used by game servers, create a steam user that won't be shared with anyone else</para> - /// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para> - /// </summary> - public static HSteamUser CreateLocalUser(out HSteamPipe phSteamPipe, EAccountType eAccountType) { - InteropHelp.TestIfAvailableGameServer(); - return (HSteamUser)NativeMethods.ISteamClient_CreateLocalUser(CSteamGameServerAPIContext.GetSteamClient(), out phSteamPipe, eAccountType); - } - - /// <summary> - /// <para> removes an allocated user</para> - /// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para> - /// </summary> - public static void ReleaseUser(HSteamPipe hSteamPipe, HSteamUser hUser) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamClient_ReleaseUser(CSteamGameServerAPIContext.GetSteamClient(), hSteamPipe, hUser); - } - - /// <summary> - /// <para> retrieves the ISteamUser interface associated with the handle</para> - /// </summary> - public static IntPtr GetISteamUser(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamUser(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> retrieves the ISteamGameServer interface associated with the handle</para> - /// </summary> - public static IntPtr GetISteamGameServer(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamGameServer(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> set the local IP and Port to bind to</para> - /// <para> this must be set before CreateLocalUser()</para> - /// </summary> - public static void SetLocalIPBinding(ref SteamIPAddress_t unIP, ushort usPort) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamClient_SetLocalIPBinding(CSteamGameServerAPIContext.GetSteamClient(), ref unIP, usPort); - } - - /// <summary> - /// <para> returns the ISteamFriends interface</para> - /// </summary> - public static IntPtr GetISteamFriends(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamFriends(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the ISteamUtils interface</para> - /// </summary> - public static IntPtr GetISteamUtils(HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamUtils(CSteamGameServerAPIContext.GetSteamClient(), hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the ISteamMatchmaking interface</para> - /// </summary> - public static IntPtr GetISteamMatchmaking(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamMatchmaking(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the ISteamMatchmakingServers interface</para> - /// </summary> - public static IntPtr GetISteamMatchmakingServers(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamMatchmakingServers(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the a generic interface</para> - /// </summary> - public static IntPtr GetISteamGenericInterface(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamGenericInterface(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the ISteamUserStats interface</para> - /// </summary> - public static IntPtr GetISteamUserStats(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamUserStats(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the ISteamGameServerStats interface</para> - /// </summary> - public static IntPtr GetISteamGameServerStats(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamGameServerStats(CSteamGameServerAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns apps interface</para> - /// </summary> - public static IntPtr GetISteamApps(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamApps(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> networking</para> - /// </summary> - public static IntPtr GetISteamNetworking(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamNetworking(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> remote storage</para> - /// </summary> - public static IntPtr GetISteamRemoteStorage(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamRemoteStorage(CSteamGameServerAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> user screenshots</para> - /// </summary> - public static IntPtr GetISteamScreenshots(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamScreenshots(CSteamGameServerAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> game search</para> - /// </summary> - public static IntPtr GetISteamGameSearch(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamGameSearch(CSteamGameServerAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns the number of IPC calls made since the last time this function was called</para> - /// <para> Used for perf debugging so you can understand how many IPC calls your game makes per frame</para> - /// <para> Every IPC call is at minimum a thread context switch if not a process one so you want to rate</para> - /// <para> control how often you do them.</para> - /// </summary> - public static uint GetIPCCallCount() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamClient_GetIPCCallCount(CSteamGameServerAPIContext.GetSteamClient()); - } - - /// <summary> - /// <para> API warning handling</para> - /// <para> 'int' is the severity; 0 for msg, 1 for warning</para> - /// <para> 'const char *' is the text of the message</para> - /// <para> callbacks will occur directly after the API function is called that generated the warning or message.</para> - /// </summary> - public static void SetWarningMessageHook(SteamAPIWarningMessageHook_t pFunction) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamClient_SetWarningMessageHook(CSteamGameServerAPIContext.GetSteamClient(), pFunction); - } - - /// <summary> - /// <para> Trigger global shutdown for the DLL</para> - /// </summary> - public static bool BShutdownIfAllPipesClosed() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamClient_BShutdownIfAllPipesClosed(CSteamGameServerAPIContext.GetSteamClient()); - } - - /// <summary> - /// <para> Expose HTTP interface</para> - /// </summary> - public static IntPtr GetISteamHTTP(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamHTTP(CSteamGameServerAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Exposes the ISteamController interface - deprecated in favor of Steam Input</para> - /// </summary> - public static IntPtr GetISteamController(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamController(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Exposes the ISteamUGC interface</para> - /// </summary> - public static IntPtr GetISteamUGC(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamUGC(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> returns app list interface, only available on specially registered apps</para> - /// </summary> - public static IntPtr GetISteamAppList(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamAppList(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Music Player</para> - /// </summary> - public static IntPtr GetISteamMusic(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamMusic(CSteamGameServerAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Music Player Remote</para> - /// </summary> - public static IntPtr GetISteamMusicRemote(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamMusicRemote(CSteamGameServerAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> html page display</para> - /// </summary> - public static IntPtr GetISteamHTMLSurface(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamHTMLSurface(CSteamGameServerAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> inventory</para> - /// </summary> - public static IntPtr GetISteamInventory(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamInventory(CSteamGameServerAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Video</para> - /// </summary> - public static IntPtr GetISteamVideo(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamVideo(CSteamGameServerAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Parental controls</para> - /// </summary> - public static IntPtr GetISteamParentalSettings(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamParentalSettings(CSteamGameServerAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Exposes the Steam Input interface for controller support</para> - /// </summary> - public static IntPtr GetISteamInput(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamInput(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Steam Parties interface</para> - /// </summary> - public static IntPtr GetISteamParties(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamParties(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - - /// <summary> - /// <para> Steam Remote Play interface</para> - /// </summary> - public static IntPtr GetISteamRemotePlay(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) { - return NativeMethods.ISteamClient_GetISteamRemotePlay(CSteamGameServerAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2); - } - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverclient.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverclient.cs.meta deleted file mode 100644 index 04edd62..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverclient.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4b4c8a2697f638c40a8e3c70f86e5c96 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverhttp.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverhttp.cs deleted file mode 100644 index 010fde2..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverhttp.cs +++ /dev/null @@ -1,277 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamGameServerHTTP { - /// <summary> - /// <para> Initializes a new HTTP request, returning a handle to use in further operations on it. Requires</para> - /// <para> the method (GET or POST) and the absolute URL for the request. Both http and https are supported,</para> - /// <para> so this string must start with http:// or https:// and should look like http://store.steampowered.com/app/250/</para> - /// <para> or such.</para> - /// </summary> - public static HTTPRequestHandle CreateHTTPRequest(EHTTPMethod eHTTPRequestMethod, string pchAbsoluteURL) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchAbsoluteURL2 = new InteropHelp.UTF8StringHandle(pchAbsoluteURL)) { - return (HTTPRequestHandle)NativeMethods.ISteamHTTP_CreateHTTPRequest(CSteamGameServerAPIContext.GetSteamHTTP(), eHTTPRequestMethod, pchAbsoluteURL2); - } - } - - /// <summary> - /// <para> Set a context value for the request, which will be returned in the HTTPRequestCompleted_t callback after</para> - /// <para> sending the request. This is just so the caller can easily keep track of which callbacks go with which request data.</para> - /// </summary> - public static bool SetHTTPRequestContextValue(HTTPRequestHandle hRequest, ulong ulContextValue) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_SetHTTPRequestContextValue(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, ulContextValue); - } - - /// <summary> - /// <para> Set a timeout in seconds for the HTTP request, must be called prior to sending the request. Default</para> - /// <para> timeout is 60 seconds if you don't call this. Returns false if the handle is invalid, or the request</para> - /// <para> has already been sent.</para> - /// </summary> - public static bool SetHTTPRequestNetworkActivityTimeout(HTTPRequestHandle hRequest, uint unTimeoutSeconds) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, unTimeoutSeconds); - } - - /// <summary> - /// <para> Set a request header value for the request, must be called prior to sending the request. Will</para> - /// <para> return false if the handle is invalid or the request is already sent.</para> - /// </summary> - public static bool SetHTTPRequestHeaderValue(HTTPRequestHandle hRequest, string pchHeaderName, string pchHeaderValue) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchHeaderName2 = new InteropHelp.UTF8StringHandle(pchHeaderName)) - using (var pchHeaderValue2 = new InteropHelp.UTF8StringHandle(pchHeaderValue)) { - return NativeMethods.ISteamHTTP_SetHTTPRequestHeaderValue(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, pchHeaderName2, pchHeaderValue2); - } - } - - /// <summary> - /// <para> Set a GET or POST parameter value on the request, which is set will depend on the EHTTPMethod specified</para> - /// <para> when creating the request. Must be called prior to sending the request. Will return false if the</para> - /// <para> handle is invalid or the request is already sent.</para> - /// </summary> - public static bool SetHTTPRequestGetOrPostParameter(HTTPRequestHandle hRequest, string pchParamName, string pchParamValue) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchParamName2 = new InteropHelp.UTF8StringHandle(pchParamName)) - using (var pchParamValue2 = new InteropHelp.UTF8StringHandle(pchParamValue)) { - return NativeMethods.ISteamHTTP_SetHTTPRequestGetOrPostParameter(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, pchParamName2, pchParamValue2); - } - } - - /// <summary> - /// <para> Sends the HTTP request, will return false on a bad handle, otherwise use SteamCallHandle to wait on</para> - /// <para> asynchronous response via callback.</para> - /// <para> Note: If the user is in offline mode in Steam, then this will add a only-if-cached cache-control</para> - /// <para> header and only do a local cache lookup rather than sending any actual remote request.</para> - /// </summary> - public static bool SendHTTPRequest(HTTPRequestHandle hRequest, out SteamAPICall_t pCallHandle) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_SendHTTPRequest(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, out pCallHandle); - } - - /// <summary> - /// <para> Sends the HTTP request, will return false on a bad handle, otherwise use SteamCallHandle to wait on</para> - /// <para> asynchronous response via callback for completion, and listen for HTTPRequestHeadersReceived_t and</para> - /// <para> HTTPRequestDataReceived_t callbacks while streaming.</para> - /// </summary> - public static bool SendHTTPRequestAndStreamResponse(HTTPRequestHandle hRequest, out SteamAPICall_t pCallHandle) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_SendHTTPRequestAndStreamResponse(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, out pCallHandle); - } - - /// <summary> - /// <para> Defers a request you have sent, the actual HTTP client code may have many requests queued, and this will move</para> - /// <para> the specified request to the tail of the queue. Returns false on invalid handle, or if the request is not yet sent.</para> - /// </summary> - public static bool DeferHTTPRequest(HTTPRequestHandle hRequest) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_DeferHTTPRequest(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest); - } - - /// <summary> - /// <para> Prioritizes a request you have sent, the actual HTTP client code may have many requests queued, and this will move</para> - /// <para> the specified request to the head of the queue. Returns false on invalid handle, or if the request is not yet sent.</para> - /// </summary> - public static bool PrioritizeHTTPRequest(HTTPRequestHandle hRequest) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_PrioritizeHTTPRequest(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest); - } - - /// <summary> - /// <para> Checks if a response header is present in a HTTP response given a handle from HTTPRequestCompleted_t, also</para> - /// <para> returns the size of the header value if present so the caller and allocate a correctly sized buffer for</para> - /// <para> GetHTTPResponseHeaderValue.</para> - /// </summary> - public static bool GetHTTPResponseHeaderSize(HTTPRequestHandle hRequest, string pchHeaderName, out uint unResponseHeaderSize) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchHeaderName2 = new InteropHelp.UTF8StringHandle(pchHeaderName)) { - return NativeMethods.ISteamHTTP_GetHTTPResponseHeaderSize(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, pchHeaderName2, out unResponseHeaderSize); - } - } - - /// <summary> - /// <para> Gets header values from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the</para> - /// <para> header is not present or if your buffer is too small to contain it's value. You should first call</para> - /// <para> BGetHTTPResponseHeaderSize to check for the presence of the header and to find out the size buffer needed.</para> - /// </summary> - public static bool GetHTTPResponseHeaderValue(HTTPRequestHandle hRequest, string pchHeaderName, byte[] pHeaderValueBuffer, uint unBufferSize) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchHeaderName2 = new InteropHelp.UTF8StringHandle(pchHeaderName)) { - return NativeMethods.ISteamHTTP_GetHTTPResponseHeaderValue(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, pchHeaderName2, pHeaderValueBuffer, unBufferSize); - } - } - - /// <summary> - /// <para> Gets the size of the body data from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the</para> - /// <para> handle is invalid.</para> - /// </summary> - public static bool GetHTTPResponseBodySize(HTTPRequestHandle hRequest, out uint unBodySize) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_GetHTTPResponseBodySize(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, out unBodySize); - } - - /// <summary> - /// <para> Gets the body data from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the</para> - /// <para> handle is invalid or is to a streaming response, or if the provided buffer is not the correct size. Use BGetHTTPResponseBodySize first to find out</para> - /// <para> the correct buffer size to use.</para> - /// </summary> - public static bool GetHTTPResponseBodyData(HTTPRequestHandle hRequest, byte[] pBodyDataBuffer, uint unBufferSize) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_GetHTTPResponseBodyData(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, pBodyDataBuffer, unBufferSize); - } - - /// <summary> - /// <para> Gets the body data from a streaming HTTP response given a handle from HTTPRequestDataReceived_t. Will return false if the</para> - /// <para> handle is invalid or is to a non-streaming response (meaning it wasn't sent with SendHTTPRequestAndStreamResponse), or if the buffer size and offset</para> - /// <para> do not match the size and offset sent in HTTPRequestDataReceived_t.</para> - /// </summary> - public static bool GetHTTPStreamingResponseBodyData(HTTPRequestHandle hRequest, uint cOffset, byte[] pBodyDataBuffer, uint unBufferSize) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_GetHTTPStreamingResponseBodyData(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, cOffset, pBodyDataBuffer, unBufferSize); - } - - /// <summary> - /// <para> Releases an HTTP response handle, should always be called to free resources after receiving a HTTPRequestCompleted_t</para> - /// <para> callback and finishing using the response.</para> - /// </summary> - public static bool ReleaseHTTPRequest(HTTPRequestHandle hRequest) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_ReleaseHTTPRequest(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest); - } - - /// <summary> - /// <para> Gets progress on downloading the body for the request. This will be zero unless a response header has already been</para> - /// <para> received which included a content-length field. For responses that contain no content-length it will report</para> - /// <para> zero for the duration of the request as the size is unknown until the connection closes.</para> - /// </summary> - public static bool GetHTTPDownloadProgressPct(HTTPRequestHandle hRequest, out float pflPercentOut) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_GetHTTPDownloadProgressPct(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, out pflPercentOut); - } - - /// <summary> - /// <para> Sets the body for an HTTP Post request. Will fail and return false on a GET request, and will fail if POST params</para> - /// <para> have already been set for the request. Setting this raw body makes it the only contents for the post, the pchContentType</para> - /// <para> parameter will set the content-type header for the request so the server may know how to interpret the body.</para> - /// </summary> - public static bool SetHTTPRequestRawPostBody(HTTPRequestHandle hRequest, string pchContentType, byte[] pubBody, uint unBodyLen) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchContentType2 = new InteropHelp.UTF8StringHandle(pchContentType)) { - return NativeMethods.ISteamHTTP_SetHTTPRequestRawPostBody(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, pchContentType2, pubBody, unBodyLen); - } - } - - /// <summary> - /// <para> Creates a cookie container handle which you must later free with ReleaseCookieContainer(). If bAllowResponsesToModify=true</para> - /// <para> than any response to your requests using this cookie container may add new cookies which may be transmitted with</para> - /// <para> future requests. If bAllowResponsesToModify=false than only cookies you explicitly set will be sent. This API is just for</para> - /// <para> during process lifetime, after steam restarts no cookies are persisted and you have no way to access the cookie container across</para> - /// <para> repeat executions of your process.</para> - /// </summary> - public static HTTPCookieContainerHandle CreateCookieContainer(bool bAllowResponsesToModify) { - InteropHelp.TestIfAvailableGameServer(); - return (HTTPCookieContainerHandle)NativeMethods.ISteamHTTP_CreateCookieContainer(CSteamGameServerAPIContext.GetSteamHTTP(), bAllowResponsesToModify); - } - - /// <summary> - /// <para> Release a cookie container you are finished using, freeing it's memory</para> - /// </summary> - public static bool ReleaseCookieContainer(HTTPCookieContainerHandle hCookieContainer) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_ReleaseCookieContainer(CSteamGameServerAPIContext.GetSteamHTTP(), hCookieContainer); - } - - /// <summary> - /// <para> Adds a cookie to the specified cookie container that will be used with future requests.</para> - /// </summary> - public static bool SetCookie(HTTPCookieContainerHandle hCookieContainer, string pchHost, string pchUrl, string pchCookie) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchHost2 = new InteropHelp.UTF8StringHandle(pchHost)) - using (var pchUrl2 = new InteropHelp.UTF8StringHandle(pchUrl)) - using (var pchCookie2 = new InteropHelp.UTF8StringHandle(pchCookie)) { - return NativeMethods.ISteamHTTP_SetCookie(CSteamGameServerAPIContext.GetSteamHTTP(), hCookieContainer, pchHost2, pchUrl2, pchCookie2); - } - } - - /// <summary> - /// <para> Set the cookie container to use for a HTTP request</para> - /// </summary> - public static bool SetHTTPRequestCookieContainer(HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_SetHTTPRequestCookieContainer(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, hCookieContainer); - } - - /// <summary> - /// <para> Set the extra user agent info for a request, this doesn't clobber the normal user agent, it just adds the extra info on the end</para> - /// </summary> - public static bool SetHTTPRequestUserAgentInfo(HTTPRequestHandle hRequest, string pchUserAgentInfo) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchUserAgentInfo2 = new InteropHelp.UTF8StringHandle(pchUserAgentInfo)) { - return NativeMethods.ISteamHTTP_SetHTTPRequestUserAgentInfo(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, pchUserAgentInfo2); - } - } - - /// <summary> - /// <para> Disable or re-enable verification of SSL/TLS certificates.</para> - /// <para> By default, certificates are checked for all HTTPS requests.</para> - /// </summary> - public static bool SetHTTPRequestRequiresVerifiedCertificate(HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, bRequireVerifiedCertificate); - } - - /// <summary> - /// <para> Set an absolute timeout on the HTTP request, this is just a total time timeout different than the network activity timeout</para> - /// <para> which can bump everytime we get more data</para> - /// </summary> - public static bool SetHTTPRequestAbsoluteTimeoutMS(HTTPRequestHandle hRequest, uint unMilliseconds) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, unMilliseconds); - } - - /// <summary> - /// <para> Check if the reason the request failed was because we timed it out (rather than some harder failure)</para> - /// </summary> - public static bool GetHTTPRequestWasTimedOut(HTTPRequestHandle hRequest, out bool pbWasTimedOut) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamHTTP_GetHTTPRequestWasTimedOut(CSteamGameServerAPIContext.GetSteamHTTP(), hRequest, out pbWasTimedOut); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverhttp.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverhttp.cs.meta deleted file mode 100644 index d5a2fa6..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverhttp.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5a78311cd8781b041a4f4cc4990719ee -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverinventory.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverinventory.cs deleted file mode 100644 index 608216b..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverinventory.cs +++ /dev/null @@ -1,478 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamGameServerInventory { - /// <summary> - /// <para> INVENTORY ASYNC RESULT MANAGEMENT</para> - /// <para> Asynchronous inventory queries always output a result handle which can be used with</para> - /// <para> GetResultStatus, GetResultItems, etc. A SteamInventoryResultReady_t callback will</para> - /// <para> be triggered when the asynchronous result becomes ready (or fails).</para> - /// <para> Find out the status of an asynchronous inventory result handle. Possible values:</para> - /// <para> k_EResultPending - still in progress</para> - /// <para> k_EResultOK - done, result ready</para> - /// <para> k_EResultExpired - done, result ready, maybe out of date (see DeserializeResult)</para> - /// <para> k_EResultInvalidParam - ERROR: invalid API call parameters</para> - /// <para> k_EResultServiceUnavailable - ERROR: service temporarily down, you may retry later</para> - /// <para> k_EResultLimitExceeded - ERROR: operation would exceed per-user inventory limits</para> - /// <para> k_EResultFail - ERROR: unknown / generic error</para> - /// </summary> - public static EResult GetResultStatus(SteamInventoryResult_t resultHandle) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_GetResultStatus(CSteamGameServerAPIContext.GetSteamInventory(), resultHandle); - } - - /// <summary> - /// <para> Copies the contents of a result set into a flat array. The specific</para> - /// <para> contents of the result set depend on which query which was used.</para> - /// </summary> - public static bool GetResultItems(SteamInventoryResult_t resultHandle, SteamItemDetails_t[] pOutItemsArray, ref uint punOutItemsArraySize) { - InteropHelp.TestIfAvailableGameServer(); - if (pOutItemsArray != null && pOutItemsArray.Length != punOutItemsArraySize) { - throw new System.ArgumentException("pOutItemsArray must be the same size as punOutItemsArraySize!"); - } - return NativeMethods.ISteamInventory_GetResultItems(CSteamGameServerAPIContext.GetSteamInventory(), resultHandle, pOutItemsArray, ref punOutItemsArraySize); - } - - /// <summary> - /// <para> In combination with GetResultItems, you can use GetResultItemProperty to retrieve</para> - /// <para> dynamic string properties for a given item returned in the result set.</para> - /// <para> Property names are always composed of ASCII letters, numbers, and/or underscores.</para> - /// <para> Pass a NULL pointer for pchPropertyName to get a comma - separated list of available</para> - /// <para> property names.</para> - /// <para> If pchValueBuffer is NULL, *punValueBufferSize will contain the</para> - /// <para> suggested buffer size. Otherwise it will be the number of bytes actually copied</para> - /// <para> to pchValueBuffer. If the results do not fit in the given buffer, partial</para> - /// <para> results may be copied.</para> - /// </summary> - public static bool GetResultItemProperty(SteamInventoryResult_t resultHandle, uint unItemIndex, string pchPropertyName, out string pchValueBuffer, ref uint punValueBufferSizeOut) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pchValueBuffer2 = Marshal.AllocHGlobal((int)punValueBufferSizeOut); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) { - bool ret = NativeMethods.ISteamInventory_GetResultItemProperty(CSteamGameServerAPIContext.GetSteamInventory(), resultHandle, unItemIndex, pchPropertyName2, pchValueBuffer2, ref punValueBufferSizeOut); - pchValueBuffer = ret ? InteropHelp.PtrToStringUTF8(pchValueBuffer2) : null; - Marshal.FreeHGlobal(pchValueBuffer2); - return ret; - } - } - - /// <summary> - /// <para> Returns the server time at which the result was generated. Compare against</para> - /// <para> the value of IClientUtils::GetServerRealTime() to determine age.</para> - /// </summary> - public static uint GetResultTimestamp(SteamInventoryResult_t resultHandle) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_GetResultTimestamp(CSteamGameServerAPIContext.GetSteamInventory(), resultHandle); - } - - /// <summary> - /// <para> Returns true if the result belongs to the target steam ID, false if the</para> - /// <para> result does not. This is important when using DeserializeResult, to verify</para> - /// <para> that a remote player is not pretending to have a different user's inventory.</para> - /// </summary> - public static bool CheckResultSteamID(SteamInventoryResult_t resultHandle, CSteamID steamIDExpected) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_CheckResultSteamID(CSteamGameServerAPIContext.GetSteamInventory(), resultHandle, steamIDExpected); - } - - /// <summary> - /// <para> Destroys a result handle and frees all associated memory.</para> - /// </summary> - public static void DestroyResult(SteamInventoryResult_t resultHandle) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamInventory_DestroyResult(CSteamGameServerAPIContext.GetSteamInventory(), resultHandle); - } - - /// <summary> - /// <para> INVENTORY ASYNC QUERY</para> - /// <para> Captures the entire state of the current user's Steam inventory.</para> - /// <para> You must call DestroyResult on this handle when you are done with it.</para> - /// <para> Returns false and sets *pResultHandle to zero if inventory is unavailable.</para> - /// <para> Note: calls to this function are subject to rate limits and may return</para> - /// <para> cached results if called too frequently. It is suggested that you call</para> - /// <para> this function only when you are about to display the user's full inventory,</para> - /// <para> or if you expect that the inventory may have changed.</para> - /// </summary> - public static bool GetAllItems(out SteamInventoryResult_t pResultHandle) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_GetAllItems(CSteamGameServerAPIContext.GetSteamInventory(), out pResultHandle); - } - - /// <summary> - /// <para> Captures the state of a subset of the current user's Steam inventory,</para> - /// <para> identified by an array of item instance IDs. The results from this call</para> - /// <para> can be serialized and passed to other players to "prove" that the current</para> - /// <para> user owns specific items, without exposing the user's entire inventory.</para> - /// <para> For example, you could call GetItemsByID with the IDs of the user's</para> - /// <para> currently equipped cosmetic items and serialize this to a buffer, and</para> - /// <para> then transmit this buffer to other players upon joining a game.</para> - /// </summary> - public static bool GetItemsByID(out SteamInventoryResult_t pResultHandle, SteamItemInstanceID_t[] pInstanceIDs, uint unCountInstanceIDs) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_GetItemsByID(CSteamGameServerAPIContext.GetSteamInventory(), out pResultHandle, pInstanceIDs, unCountInstanceIDs); - } - - /// <summary> - /// <para> RESULT SERIALIZATION AND AUTHENTICATION</para> - /// <para> Serialized result sets contain a short signature which can't be forged</para> - /// <para> or replayed across different game sessions. A result set can be serialized</para> - /// <para> on the local client, transmitted to other players via your game networking,</para> - /// <para> and deserialized by the remote players. This is a secure way of preventing</para> - /// <para> hackers from lying about posessing rare/high-value items.</para> - /// <para> Serializes a result set with signature bytes to an output buffer. Pass</para> - /// <para> NULL as an output buffer to get the required size via punOutBufferSize.</para> - /// <para> The size of a serialized result depends on the number items which are being</para> - /// <para> serialized. When securely transmitting items to other players, it is</para> - /// <para> recommended to use "GetItemsByID" first to create a minimal result set.</para> - /// <para> Results have a built-in timestamp which will be considered "expired" after</para> - /// <para> an hour has elapsed. See DeserializeResult for expiration handling.</para> - /// </summary> - public static bool SerializeResult(SteamInventoryResult_t resultHandle, byte[] pOutBuffer, out uint punOutBufferSize) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_SerializeResult(CSteamGameServerAPIContext.GetSteamInventory(), resultHandle, pOutBuffer, out punOutBufferSize); - } - - /// <summary> - /// <para> Deserializes a result set and verifies the signature bytes. Returns false</para> - /// <para> if bRequireFullOnlineVerify is set but Steam is running in Offline mode.</para> - /// <para> Otherwise returns true and then delivers error codes via GetResultStatus.</para> - /// <para> The bRESERVED_MUST_BE_FALSE flag is reserved for future use and should not</para> - /// <para> be set to true by your game at this time.</para> - /// <para> DeserializeResult has a potential soft-failure mode where the handle status</para> - /// <para> is set to k_EResultExpired. GetResultItems() still succeeds in this mode.</para> - /// <para> The "expired" result could indicate that the data may be out of date - not</para> - /// <para> just due to timed expiration (one hour), but also because one of the items</para> - /// <para> in the result set may have been traded or consumed since the result set was</para> - /// <para> generated. You could compare the timestamp from GetResultTimestamp() to</para> - /// <para> ISteamUtils::GetServerRealTime() to determine how old the data is. You could</para> - /// <para> simply ignore the "expired" result code and continue as normal, or you</para> - /// <para> could challenge the player with expired data to send an updated result set.</para> - /// </summary> - public static bool DeserializeResult(out SteamInventoryResult_t pOutResultHandle, byte[] pBuffer, uint unBufferSize, bool bRESERVED_MUST_BE_FALSE = false) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_DeserializeResult(CSteamGameServerAPIContext.GetSteamInventory(), out pOutResultHandle, pBuffer, unBufferSize, bRESERVED_MUST_BE_FALSE); - } - - /// <summary> - /// <para> INVENTORY ASYNC MODIFICATION</para> - /// <para> GenerateItems() creates one or more items and then generates a SteamInventoryCallback_t</para> - /// <para> notification with a matching nCallbackContext parameter. This API is only intended</para> - /// <para> for prototyping - it is only usable by Steam accounts that belong to the publisher group</para> - /// <para> for your game.</para> - /// <para> If punArrayQuantity is not NULL, it should be the same length as pArrayItems and should</para> - /// <para> describe the quantity of each item to generate.</para> - /// </summary> - public static bool GenerateItems(out SteamInventoryResult_t pResultHandle, SteamItemDef_t[] pArrayItemDefs, uint[] punArrayQuantity, uint unArrayLength) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_GenerateItems(CSteamGameServerAPIContext.GetSteamInventory(), out pResultHandle, pArrayItemDefs, punArrayQuantity, unArrayLength); - } - - /// <summary> - /// <para> GrantPromoItems() checks the list of promotional items for which the user may be eligible</para> - /// <para> and grants the items (one time only). On success, the result set will include items which</para> - /// <para> were granted, if any. If no items were granted because the user isn't eligible for any</para> - /// <para> promotions, this is still considered a success.</para> - /// </summary> - public static bool GrantPromoItems(out SteamInventoryResult_t pResultHandle) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_GrantPromoItems(CSteamGameServerAPIContext.GetSteamInventory(), out pResultHandle); - } - - /// <summary> - /// <para> AddPromoItem() / AddPromoItems() are restricted versions of GrantPromoItems(). Instead of</para> - /// <para> scanning for all eligible promotional items, the check is restricted to a single item</para> - /// <para> definition or set of item definitions. This can be useful if your game has custom UI for</para> - /// <para> showing a specific promo item to the user.</para> - /// </summary> - public static bool AddPromoItem(out SteamInventoryResult_t pResultHandle, SteamItemDef_t itemDef) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_AddPromoItem(CSteamGameServerAPIContext.GetSteamInventory(), out pResultHandle, itemDef); - } - - public static bool AddPromoItems(out SteamInventoryResult_t pResultHandle, SteamItemDef_t[] pArrayItemDefs, uint unArrayLength) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_AddPromoItems(CSteamGameServerAPIContext.GetSteamInventory(), out pResultHandle, pArrayItemDefs, unArrayLength); - } - - /// <summary> - /// <para> ConsumeItem() removes items from the inventory, permanently. They cannot be recovered.</para> - /// <para> Not for the faint of heart - if your game implements item removal at all, a high-friction</para> - /// <para> UI confirmation process is highly recommended.</para> - /// </summary> - public static bool ConsumeItem(out SteamInventoryResult_t pResultHandle, SteamItemInstanceID_t itemConsume, uint unQuantity) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_ConsumeItem(CSteamGameServerAPIContext.GetSteamInventory(), out pResultHandle, itemConsume, unQuantity); - } - - /// <summary> - /// <para> ExchangeItems() is an atomic combination of item generation and consumption.</para> - /// <para> It can be used to implement crafting recipes or transmutations, or items which unpack</para> - /// <para> themselves into other items (e.g., a chest).</para> - /// <para> Exchange recipes are defined in the ItemDef, and explicitly list the required item</para> - /// <para> types and resulting generated type.</para> - /// <para> Exchange recipes are evaluated atomically by the Inventory Service; if the supplied</para> - /// <para> components do not match the recipe, or do not contain sufficient quantity, the</para> - /// <para> exchange will fail.</para> - /// </summary> - public static bool ExchangeItems(out SteamInventoryResult_t pResultHandle, SteamItemDef_t[] pArrayGenerate, uint[] punArrayGenerateQuantity, uint unArrayGenerateLength, SteamItemInstanceID_t[] pArrayDestroy, uint[] punArrayDestroyQuantity, uint unArrayDestroyLength) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_ExchangeItems(CSteamGameServerAPIContext.GetSteamInventory(), out pResultHandle, pArrayGenerate, punArrayGenerateQuantity, unArrayGenerateLength, pArrayDestroy, punArrayDestroyQuantity, unArrayDestroyLength); - } - - /// <summary> - /// <para> TransferItemQuantity() is intended for use with items which are "stackable" (can have</para> - /// <para> quantity greater than one). It can be used to split a stack into two, or to transfer</para> - /// <para> quantity from one stack into another stack of identical items. To split one stack into</para> - /// <para> two, pass k_SteamItemInstanceIDInvalid for itemIdDest and a new item will be generated.</para> - /// </summary> - public static bool TransferItemQuantity(out SteamInventoryResult_t pResultHandle, SteamItemInstanceID_t itemIdSource, uint unQuantity, SteamItemInstanceID_t itemIdDest) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_TransferItemQuantity(CSteamGameServerAPIContext.GetSteamInventory(), out pResultHandle, itemIdSource, unQuantity, itemIdDest); - } - - /// <summary> - /// <para> TIMED DROPS AND PLAYTIME CREDIT</para> - /// <para> Deprecated. Calling this method is not required for proper playtime accounting.</para> - /// </summary> - public static void SendItemDropHeartbeat() { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamInventory_SendItemDropHeartbeat(CSteamGameServerAPIContext.GetSteamInventory()); - } - - /// <summary> - /// <para> Playtime credit must be consumed and turned into item drops by your game. Only item</para> - /// <para> definitions which are marked as "playtime item generators" can be spawned. The call</para> - /// <para> will return an empty result set if there is not enough playtime credit for a drop.</para> - /// <para> Your game should call TriggerItemDrop at an appropriate time for the user to receive</para> - /// <para> new items, such as between rounds or while the player is dead. Note that players who</para> - /// <para> hack their clients could modify the value of "dropListDefinition", so do not use it</para> - /// <para> to directly control rarity.</para> - /// <para> See your Steamworks configuration to set playtime drop rates for individual itemdefs.</para> - /// <para> The client library will suppress too-frequent calls to this method.</para> - /// </summary> - public static bool TriggerItemDrop(out SteamInventoryResult_t pResultHandle, SteamItemDef_t dropListDefinition) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_TriggerItemDrop(CSteamGameServerAPIContext.GetSteamInventory(), out pResultHandle, dropListDefinition); - } - - /// <summary> - /// <para> Deprecated. This method is not supported.</para> - /// </summary> - public static bool TradeItems(out SteamInventoryResult_t pResultHandle, CSteamID steamIDTradePartner, SteamItemInstanceID_t[] pArrayGive, uint[] pArrayGiveQuantity, uint nArrayGiveLength, SteamItemInstanceID_t[] pArrayGet, uint[] pArrayGetQuantity, uint nArrayGetLength) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_TradeItems(CSteamGameServerAPIContext.GetSteamInventory(), out pResultHandle, steamIDTradePartner, pArrayGive, pArrayGiveQuantity, nArrayGiveLength, pArrayGet, pArrayGetQuantity, nArrayGetLength); - } - - /// <summary> - /// <para> ITEM DEFINITIONS</para> - /// <para> Item definitions are a mapping of "definition IDs" (integers between 1 and 1000000)</para> - /// <para> to a set of string properties. Some of these properties are required to display items</para> - /// <para> on the Steam community web site. Other properties can be defined by applications.</para> - /// <para> Use of these functions is optional; there is no reason to call LoadItemDefinitions</para> - /// <para> if your game hardcodes the numeric definition IDs (eg, purple face mask = 20, blue</para> - /// <para> weapon mod = 55) and does not allow for adding new item types without a client patch.</para> - /// <para> LoadItemDefinitions triggers the automatic load and refresh of item definitions.</para> - /// <para> Every time new item definitions are available (eg, from the dynamic addition of new</para> - /// <para> item types while players are still in-game), a SteamInventoryDefinitionUpdate_t</para> - /// <para> callback will be fired.</para> - /// </summary> - public static bool LoadItemDefinitions() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_LoadItemDefinitions(CSteamGameServerAPIContext.GetSteamInventory()); - } - - /// <summary> - /// <para> GetItemDefinitionIDs returns the set of all defined item definition IDs (which are</para> - /// <para> defined via Steamworks configuration, and not necessarily contiguous integers).</para> - /// <para> If pItemDefIDs is null, the call will return true and *punItemDefIDsArraySize will</para> - /// <para> contain the total size necessary for a subsequent call. Otherwise, the call will</para> - /// <para> return false if and only if there is not enough space in the output array.</para> - /// </summary> - public static bool GetItemDefinitionIDs(SteamItemDef_t[] pItemDefIDs, ref uint punItemDefIDsArraySize) { - InteropHelp.TestIfAvailableGameServer(); - if (pItemDefIDs != null && pItemDefIDs.Length != punItemDefIDsArraySize) { - throw new System.ArgumentException("pItemDefIDs must be the same size as punItemDefIDsArraySize!"); - } - return NativeMethods.ISteamInventory_GetItemDefinitionIDs(CSteamGameServerAPIContext.GetSteamInventory(), pItemDefIDs, ref punItemDefIDsArraySize); - } - - /// <summary> - /// <para> GetItemDefinitionProperty returns a string property from a given item definition.</para> - /// <para> Note that some properties (for example, "name") may be localized and will depend</para> - /// <para> on the current Steam language settings (see ISteamApps::GetCurrentGameLanguage).</para> - /// <para> Property names are always composed of ASCII letters, numbers, and/or underscores.</para> - /// <para> Pass a NULL pointer for pchPropertyName to get a comma - separated list of available</para> - /// <para> property names. If pchValueBuffer is NULL, *punValueBufferSize will contain the</para> - /// <para> suggested buffer size. Otherwise it will be the number of bytes actually copied</para> - /// <para> to pchValueBuffer. If the results do not fit in the given buffer, partial</para> - /// <para> results may be copied.</para> - /// </summary> - public static bool GetItemDefinitionProperty(SteamItemDef_t iDefinition, string pchPropertyName, out string pchValueBuffer, ref uint punValueBufferSizeOut) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pchValueBuffer2 = Marshal.AllocHGlobal((int)punValueBufferSizeOut); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) { - bool ret = NativeMethods.ISteamInventory_GetItemDefinitionProperty(CSteamGameServerAPIContext.GetSteamInventory(), iDefinition, pchPropertyName2, pchValueBuffer2, ref punValueBufferSizeOut); - pchValueBuffer = ret ? InteropHelp.PtrToStringUTF8(pchValueBuffer2) : null; - Marshal.FreeHGlobal(pchValueBuffer2); - return ret; - } - } - - /// <summary> - /// <para> Request the list of "eligible" promo items that can be manually granted to the given</para> - /// <para> user. These are promo items of type "manual" that won't be granted automatically.</para> - /// <para> An example usage of this is an item that becomes available every week.</para> - /// </summary> - public static SteamAPICall_t RequestEligiblePromoItemDefinitionsIDs(CSteamID steamID) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamInventory_RequestEligiblePromoItemDefinitionsIDs(CSteamGameServerAPIContext.GetSteamInventory(), steamID); - } - - /// <summary> - /// <para> After handling a SteamInventoryEligiblePromoItemDefIDs_t call result, use this</para> - /// <para> function to pull out the list of item definition ids that the user can be</para> - /// <para> manually granted via the AddPromoItems() call.</para> - /// </summary> - public static bool GetEligiblePromoItemDefinitionIDs(CSteamID steamID, SteamItemDef_t[] pItemDefIDs, ref uint punItemDefIDsArraySize) { - InteropHelp.TestIfAvailableGameServer(); - if (pItemDefIDs != null && pItemDefIDs.Length != punItemDefIDsArraySize) { - throw new System.ArgumentException("pItemDefIDs must be the same size as punItemDefIDsArraySize!"); - } - return NativeMethods.ISteamInventory_GetEligiblePromoItemDefinitionIDs(CSteamGameServerAPIContext.GetSteamInventory(), steamID, pItemDefIDs, ref punItemDefIDsArraySize); - } - - /// <summary> - /// <para> Starts the purchase process for the given item definitions. The callback SteamInventoryStartPurchaseResult_t</para> - /// <para> will be posted if Steam was able to initialize the transaction.</para> - /// <para> Once the purchase has been authorized and completed by the user, the callback SteamInventoryResultReady_t</para> - /// <para> will be posted.</para> - /// </summary> - public static SteamAPICall_t StartPurchase(SteamItemDef_t[] pArrayItemDefs, uint[] punArrayQuantity, uint unArrayLength) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamInventory_StartPurchase(CSteamGameServerAPIContext.GetSteamInventory(), pArrayItemDefs, punArrayQuantity, unArrayLength); - } - - /// <summary> - /// <para> Request current prices for all applicable item definitions</para> - /// </summary> - public static SteamAPICall_t RequestPrices() { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamInventory_RequestPrices(CSteamGameServerAPIContext.GetSteamInventory()); - } - - /// <summary> - /// <para> Returns the number of items with prices. Need to call RequestPrices() first.</para> - /// </summary> - public static uint GetNumItemsWithPrices() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_GetNumItemsWithPrices(CSteamGameServerAPIContext.GetSteamInventory()); - } - - /// <summary> - /// <para> Returns item definition ids and their prices in the user's local currency.</para> - /// <para> Need to call RequestPrices() first.</para> - /// </summary> - public static bool GetItemsWithPrices(SteamItemDef_t[] pArrayItemDefs, ulong[] pCurrentPrices, ulong[] pBasePrices, uint unArrayLength) { - InteropHelp.TestIfAvailableGameServer(); - if (pArrayItemDefs != null && pArrayItemDefs.Length != unArrayLength) { - throw new System.ArgumentException("pArrayItemDefs must be the same size as unArrayLength!"); - } - if (pCurrentPrices != null && pCurrentPrices.Length != unArrayLength) { - throw new System.ArgumentException("pCurrentPrices must be the same size as unArrayLength!"); - } - if (pBasePrices != null && pBasePrices.Length != unArrayLength) { - throw new System.ArgumentException("pBasePrices must be the same size as unArrayLength!"); - } - return NativeMethods.ISteamInventory_GetItemsWithPrices(CSteamGameServerAPIContext.GetSteamInventory(), pArrayItemDefs, pCurrentPrices, pBasePrices, unArrayLength); - } - - /// <summary> - /// <para> Retrieves the price for the item definition id</para> - /// <para> Returns false if there is no price stored for the item definition.</para> - /// </summary> - public static bool GetItemPrice(SteamItemDef_t iDefinition, out ulong pCurrentPrice, out ulong pBasePrice) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_GetItemPrice(CSteamGameServerAPIContext.GetSteamInventory(), iDefinition, out pCurrentPrice, out pBasePrice); - } - - /// <summary> - /// <para> Create a request to update properties on items</para> - /// </summary> - public static SteamInventoryUpdateHandle_t StartUpdateProperties() { - InteropHelp.TestIfAvailableGameServer(); - return (SteamInventoryUpdateHandle_t)NativeMethods.ISteamInventory_StartUpdateProperties(CSteamGameServerAPIContext.GetSteamInventory()); - } - - /// <summary> - /// <para> Remove the property on the item</para> - /// </summary> - public static bool RemoveProperty(SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, string pchPropertyName) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) { - return NativeMethods.ISteamInventory_RemoveProperty(CSteamGameServerAPIContext.GetSteamInventory(), handle, nItemID, pchPropertyName2); - } - } - - /// <summary> - /// <para> Accessor methods to set properties on items</para> - /// </summary> - public static bool SetProperty(SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, string pchPropertyName, string pchPropertyValue) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) - using (var pchPropertyValue2 = new InteropHelp.UTF8StringHandle(pchPropertyValue)) { - return NativeMethods.ISteamInventory_SetPropertyString(CSteamGameServerAPIContext.GetSteamInventory(), handle, nItemID, pchPropertyName2, pchPropertyValue2); - } - } - - public static bool SetProperty(SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, string pchPropertyName, bool bValue) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) { - return NativeMethods.ISteamInventory_SetPropertyBool(CSteamGameServerAPIContext.GetSteamInventory(), handle, nItemID, pchPropertyName2, bValue); - } - } - - public static bool SetProperty(SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, string pchPropertyName, long nValue) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) { - return NativeMethods.ISteamInventory_SetPropertyInt64(CSteamGameServerAPIContext.GetSteamInventory(), handle, nItemID, pchPropertyName2, nValue); - } - } - - public static bool SetProperty(SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, string pchPropertyName, float flValue) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) { - return NativeMethods.ISteamInventory_SetPropertyFloat(CSteamGameServerAPIContext.GetSteamInventory(), handle, nItemID, pchPropertyName2, flValue); - } - } - - /// <summary> - /// <para> Submit the update request by handle</para> - /// </summary> - public static bool SubmitUpdateProperties(SteamInventoryUpdateHandle_t handle, out SteamInventoryResult_t pResultHandle) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamInventory_SubmitUpdateProperties(CSteamGameServerAPIContext.GetSteamInventory(), handle, out pResultHandle); - } - - public static bool InspectItem(out SteamInventoryResult_t pResultHandle, string pchItemToken) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchItemToken2 = new InteropHelp.UTF8StringHandle(pchItemToken)) { - return NativeMethods.ISteamInventory_InspectItem(CSteamGameServerAPIContext.GetSteamInventory(), out pResultHandle, pchItemToken2); - } - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverinventory.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverinventory.cs.meta deleted file mode 100644 index 052902e..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverinventory.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 10c74c5b7d1df524ab3ad296b9efe267 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworking.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworking.cs deleted file mode 100644 index 5a8f341..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworking.cs +++ /dev/null @@ -1,270 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamGameServerNetworking { - /// <summary> - /// <para>//////////////////////////////////////////////////////////////////////////////////////////</para> - /// <para> UDP-style (connectionless) networking interface. These functions send messages using</para> - /// <para> an API organized around the destination. Reliable and unreliable messages are supported.</para> - /// <para> For a more TCP-style interface (meaning you have a connection handle), see the functions below.</para> - /// <para> Both interface styles can send both reliable and unreliable messages.</para> - /// <para> Automatically establishes NAT-traversing or Relay server connections</para> - /// <para> These APIs are deprecated, and may be removed in a future version of the Steamworks</para> - /// <para> SDK. See ISteamNetworkingMessages.</para> - /// <para> Sends a P2P packet to the specified user</para> - /// <para> UDP-like, unreliable and a max packet size of 1200 bytes</para> - /// <para> the first packet send may be delayed as the NAT-traversal code runs</para> - /// <para> if we can't get through to the user, an error will be posted via the callback P2PSessionConnectFail_t</para> - /// <para> see EP2PSend enum above for the descriptions of the different ways of sending packets</para> - /// <para> nChannel is a routing number you can use to help route message to different systems - you'll have to call ReadP2PPacket()</para> - /// <para> with the same channel number in order to retrieve the data on the other end</para> - /// <para> using different channels to talk to the same user will still use the same underlying p2p connection, saving on resources</para> - /// </summary> - public static bool SendP2PPacket(CSteamID steamIDRemote, byte[] pubData, uint cubData, EP2PSend eP2PSendType, int nChannel = 0) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_SendP2PPacket(CSteamGameServerAPIContext.GetSteamNetworking(), steamIDRemote, pubData, cubData, eP2PSendType, nChannel); - } - - /// <summary> - /// <para> returns true if any data is available for read, and the amount of data that will need to be read</para> - /// </summary> - public static bool IsP2PPacketAvailable(out uint pcubMsgSize, int nChannel = 0) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_IsP2PPacketAvailable(CSteamGameServerAPIContext.GetSteamNetworking(), out pcubMsgSize, nChannel); - } - - /// <summary> - /// <para> reads in a packet that has been sent from another user via SendP2PPacket()</para> - /// <para> returns the size of the message and the steamID of the user who sent it in the last two parameters</para> - /// <para> if the buffer passed in is too small, the message will be truncated</para> - /// <para> this call is not blocking, and will return false if no data is available</para> - /// </summary> - public static bool ReadP2PPacket(byte[] pubDest, uint cubDest, out uint pcubMsgSize, out CSteamID psteamIDRemote, int nChannel = 0) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_ReadP2PPacket(CSteamGameServerAPIContext.GetSteamNetworking(), pubDest, cubDest, out pcubMsgSize, out psteamIDRemote, nChannel); - } - - /// <summary> - /// <para> AcceptP2PSessionWithUser() should only be called in response to a P2PSessionRequest_t callback</para> - /// <para> P2PSessionRequest_t will be posted if another user tries to send you a packet that you haven't talked to yet</para> - /// <para> if you don't want to talk to the user, just ignore the request</para> - /// <para> if the user continues to send you packets, another P2PSessionRequest_t will be posted periodically</para> - /// <para> this may be called multiple times for a single user</para> - /// <para> (if you've called SendP2PPacket() on the other user, this implicitly accepts the session request)</para> - /// </summary> - public static bool AcceptP2PSessionWithUser(CSteamID steamIDRemote) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_AcceptP2PSessionWithUser(CSteamGameServerAPIContext.GetSteamNetworking(), steamIDRemote); - } - - /// <summary> - /// <para> call CloseP2PSessionWithUser() when you're done talking to a user, will free up resources under-the-hood</para> - /// <para> if the remote user tries to send data to you again, another P2PSessionRequest_t callback will be posted</para> - /// </summary> - public static bool CloseP2PSessionWithUser(CSteamID steamIDRemote) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_CloseP2PSessionWithUser(CSteamGameServerAPIContext.GetSteamNetworking(), steamIDRemote); - } - - /// <summary> - /// <para> call CloseP2PChannelWithUser() when you're done talking to a user on a specific channel. Once all channels</para> - /// <para> open channels to a user have been closed, the open session to the user will be closed and new data from this</para> - /// <para> user will trigger a P2PSessionRequest_t callback</para> - /// </summary> - public static bool CloseP2PChannelWithUser(CSteamID steamIDRemote, int nChannel) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_CloseP2PChannelWithUser(CSteamGameServerAPIContext.GetSteamNetworking(), steamIDRemote, nChannel); - } - - /// <summary> - /// <para> fills out P2PSessionState_t structure with details about the underlying connection to the user</para> - /// <para> should only needed for debugging purposes</para> - /// <para> returns false if no connection exists to the specified user</para> - /// </summary> - public static bool GetP2PSessionState(CSteamID steamIDRemote, out P2PSessionState_t pConnectionState) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_GetP2PSessionState(CSteamGameServerAPIContext.GetSteamNetworking(), steamIDRemote, out pConnectionState); - } - - /// <summary> - /// <para> Allow P2P connections to fall back to being relayed through the Steam servers if a direct connection</para> - /// <para> or NAT-traversal cannot be established. Only applies to connections created after setting this value,</para> - /// <para> or to existing connections that need to automatically reconnect after this value is set.</para> - /// <para> P2P packet relay is allowed by default</para> - /// <para> NOTE: This function is deprecated and may be removed in a future version of the SDK. For</para> - /// <para> security purposes, we may decide to relay the traffic to certain peers, even if you pass false</para> - /// <para> to this function, to prevent revealing the client's IP address top another peer.</para> - /// </summary> - public static bool AllowP2PPacketRelay(bool bAllow) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_AllowP2PPacketRelay(CSteamGameServerAPIContext.GetSteamNetworking(), bAllow); - } - - /// <summary> - /// <para>//////////////////////////////////////////////////////////////////////////////////////////</para> - /// <para> LISTEN / CONNECT connection-oriented interface functions</para> - /// <para> These functions are more like a client-server TCP API. One side is the "server"</para> - /// <para> and "listens" for incoming connections, which then must be "accepted." The "client"</para> - /// <para> initiates a connection by "connecting." Sending and receiving is done through a</para> - /// <para> connection handle.</para> - /// <para> For a more UDP-style interface, where you do not track connection handles but</para> - /// <para> simply send messages to a SteamID, use the UDP-style functions above.</para> - /// <para> Both methods can send both reliable and unreliable methods.</para> - /// <para> These APIs are deprecated, and may be removed in a future version of the Steamworks</para> - /// <para> SDK. See ISteamNetworkingSockets.</para> - /// <para>//////////////////////////////////////////////////////////////////////////////////////////</para> - /// <para> creates a socket and listens others to connect</para> - /// <para> will trigger a SocketStatusCallback_t callback on another client connecting</para> - /// <para> nVirtualP2PPort is the unique ID that the client will connect to, in case you have multiple ports</para> - /// <para> this can usually just be 0 unless you want multiple sets of connections</para> - /// <para> unIP is the local IP address to bind to</para> - /// <para> pass in 0 if you just want the default local IP</para> - /// <para> unPort is the port to use</para> - /// <para> pass in 0 if you don't want users to be able to connect via IP/Port, but expect to be always peer-to-peer connections only</para> - /// </summary> - public static SNetListenSocket_t CreateListenSocket(int nVirtualP2PPort, SteamIPAddress_t nIP, ushort nPort, bool bAllowUseOfPacketRelay) { - InteropHelp.TestIfAvailableGameServer(); - return (SNetListenSocket_t)NativeMethods.ISteamNetworking_CreateListenSocket(CSteamGameServerAPIContext.GetSteamNetworking(), nVirtualP2PPort, nIP, nPort, bAllowUseOfPacketRelay); - } - - /// <summary> - /// <para> creates a socket and begin connection to a remote destination</para> - /// <para> can connect via a known steamID (client or game server), or directly to an IP</para> - /// <para> on success will trigger a SocketStatusCallback_t callback</para> - /// <para> on failure or timeout will trigger a SocketStatusCallback_t callback with a failure code in m_eSNetSocketState</para> - /// </summary> - public static SNetSocket_t CreateP2PConnectionSocket(CSteamID steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay) { - InteropHelp.TestIfAvailableGameServer(); - return (SNetSocket_t)NativeMethods.ISteamNetworking_CreateP2PConnectionSocket(CSteamGameServerAPIContext.GetSteamNetworking(), steamIDTarget, nVirtualPort, nTimeoutSec, bAllowUseOfPacketRelay); - } - - public static SNetSocket_t CreateConnectionSocket(SteamIPAddress_t nIP, ushort nPort, int nTimeoutSec) { - InteropHelp.TestIfAvailableGameServer(); - return (SNetSocket_t)NativeMethods.ISteamNetworking_CreateConnectionSocket(CSteamGameServerAPIContext.GetSteamNetworking(), nIP, nPort, nTimeoutSec); - } - - /// <summary> - /// <para> disconnects the connection to the socket, if any, and invalidates the handle</para> - /// <para> any unread data on the socket will be thrown away</para> - /// <para> if bNotifyRemoteEnd is set, socket will not be completely destroyed until the remote end acknowledges the disconnect</para> - /// </summary> - public static bool DestroySocket(SNetSocket_t hSocket, bool bNotifyRemoteEnd) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_DestroySocket(CSteamGameServerAPIContext.GetSteamNetworking(), hSocket, bNotifyRemoteEnd); - } - - /// <summary> - /// <para> destroying a listen socket will automatically kill all the regular sockets generated from it</para> - /// </summary> - public static bool DestroyListenSocket(SNetListenSocket_t hSocket, bool bNotifyRemoteEnd) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_DestroyListenSocket(CSteamGameServerAPIContext.GetSteamNetworking(), hSocket, bNotifyRemoteEnd); - } - - /// <summary> - /// <para> sending data</para> - /// <para> must be a handle to a connected socket</para> - /// <para> data is all sent via UDP, and thus send sizes are limited to 1200 bytes; after this, many routers will start dropping packets</para> - /// <para> use the reliable flag with caution; although the resend rate is pretty aggressive,</para> - /// <para> it can still cause stalls in receiving data (like TCP)</para> - /// </summary> - public static bool SendDataOnSocket(SNetSocket_t hSocket, byte[] pubData, uint cubData, bool bReliable) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_SendDataOnSocket(CSteamGameServerAPIContext.GetSteamNetworking(), hSocket, pubData, cubData, bReliable); - } - - /// <summary> - /// <para> receiving data</para> - /// <para> returns false if there is no data remaining</para> - /// <para> fills out *pcubMsgSize with the size of the next message, in bytes</para> - /// </summary> - public static bool IsDataAvailableOnSocket(SNetSocket_t hSocket, out uint pcubMsgSize) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_IsDataAvailableOnSocket(CSteamGameServerAPIContext.GetSteamNetworking(), hSocket, out pcubMsgSize); - } - - /// <summary> - /// <para> fills in pubDest with the contents of the message</para> - /// <para> messages are always complete, of the same size as was sent (i.e. packetized, not streaming)</para> - /// <para> if *pcubMsgSize < cubDest, only partial data is written</para> - /// <para> returns false if no data is available</para> - /// </summary> - public static bool RetrieveDataFromSocket(SNetSocket_t hSocket, byte[] pubDest, uint cubDest, out uint pcubMsgSize) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_RetrieveDataFromSocket(CSteamGameServerAPIContext.GetSteamNetworking(), hSocket, pubDest, cubDest, out pcubMsgSize); - } - - /// <summary> - /// <para> checks for data from any socket that has been connected off this listen socket</para> - /// <para> returns false if there is no data remaining</para> - /// <para> fills out *pcubMsgSize with the size of the next message, in bytes</para> - /// <para> fills out *phSocket with the socket that data is available on</para> - /// </summary> - public static bool IsDataAvailable(SNetListenSocket_t hListenSocket, out uint pcubMsgSize, out SNetSocket_t phSocket) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_IsDataAvailable(CSteamGameServerAPIContext.GetSteamNetworking(), hListenSocket, out pcubMsgSize, out phSocket); - } - - /// <summary> - /// <para> retrieves data from any socket that has been connected off this listen socket</para> - /// <para> fills in pubDest with the contents of the message</para> - /// <para> messages are always complete, of the same size as was sent (i.e. packetized, not streaming)</para> - /// <para> if *pcubMsgSize < cubDest, only partial data is written</para> - /// <para> returns false if no data is available</para> - /// <para> fills out *phSocket with the socket that data is available on</para> - /// </summary> - public static bool RetrieveData(SNetListenSocket_t hListenSocket, byte[] pubDest, uint cubDest, out uint pcubMsgSize, out SNetSocket_t phSocket) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_RetrieveData(CSteamGameServerAPIContext.GetSteamNetworking(), hListenSocket, pubDest, cubDest, out pcubMsgSize, out phSocket); - } - - /// <summary> - /// <para> returns information about the specified socket, filling out the contents of the pointers</para> - /// </summary> - public static bool GetSocketInfo(SNetSocket_t hSocket, out CSteamID pSteamIDRemote, out int peSocketStatus, out SteamIPAddress_t punIPRemote, out ushort punPortRemote) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_GetSocketInfo(CSteamGameServerAPIContext.GetSteamNetworking(), hSocket, out pSteamIDRemote, out peSocketStatus, out punIPRemote, out punPortRemote); - } - - /// <summary> - /// <para> returns which local port the listen socket is bound to</para> - /// <para> *pnIP and *pnPort will be 0 if the socket is set to listen for P2P connections only</para> - /// </summary> - public static bool GetListenSocketInfo(SNetListenSocket_t hListenSocket, out SteamIPAddress_t pnIP, out ushort pnPort) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_GetListenSocketInfo(CSteamGameServerAPIContext.GetSteamNetworking(), hListenSocket, out pnIP, out pnPort); - } - - /// <summary> - /// <para> returns true to describe how the socket ended up connecting</para> - /// </summary> - public static ESNetSocketConnectionType GetSocketConnectionType(SNetSocket_t hSocket) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_GetSocketConnectionType(CSteamGameServerAPIContext.GetSteamNetworking(), hSocket); - } - - /// <summary> - /// <para> max packet size, in bytes</para> - /// </summary> - public static int GetMaxPacketSize(SNetSocket_t hSocket) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworking_GetMaxPacketSize(CSteamGameServerAPIContext.GetSteamNetworking(), hSocket); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworking.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworking.cs.meta deleted file mode 100644 index 1071e59..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworking.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: eb8e260012cb01949bdbff38c366d4d6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworkingsockets.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworkingsockets.cs deleted file mode 100644 index dacad4a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworkingsockets.cs +++ /dev/null @@ -1,1111 +0,0 @@ -#define STEAMNETWORKINGSOCKETS_ENABLE_SDR -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamGameServerNetworkingSockets { - /// <summary> - /// <para>/ Creates a "server" socket that listens for clients to connect to by</para> - /// <para>/ calling ConnectByIPAddress, over ordinary UDP (IPv4 or IPv6)</para> - /// <para>/</para> - /// <para>/ You must select a specific local port to listen on and set it</para> - /// <para>/ the port field of the local address.</para> - /// <para>/</para> - /// <para>/ Usually you will set the IP portion of the address to zero (SteamNetworkingIPAddr::Clear()).</para> - /// <para>/ This means that you will not bind to any particular local interface (i.e. the same</para> - /// <para>/ as INADDR_ANY in plain socket code). Furthermore, if possible the socket will be bound</para> - /// <para>/ in "dual stack" mode, which means that it can accept both IPv4 and IPv6 client connections.</para> - /// <para>/ If you really do wish to bind a particular interface, then set the local address to the</para> - /// <para>/ appropriate IPv4 or IPv6 IP.</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// <para>/</para> - /// <para>/ When a client attempts to connect, a SteamNetConnectionStatusChangedCallback_t</para> - /// <para>/ will be posted. The connection will be in the connecting state.</para> - /// </summary> - public static HSteamListenSocket CreateListenSocketIP(ref SteamNetworkingIPAddr localAddress, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableGameServer(); - return (HSteamListenSocket)NativeMethods.ISteamNetworkingSockets_CreateListenSocketIP(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), ref localAddress, nOptions, pOptions); - } - - /// <summary> - /// <para>/ Creates a connection and begins talking to a "server" over UDP at the</para> - /// <para>/ given IPv4 or IPv6 address. The remote host must be listening with a</para> - /// <para>/ matching call to CreateListenSocketIP on the specified port.</para> - /// <para>/</para> - /// <para>/ A SteamNetConnectionStatusChangedCallback_t callback will be triggered when we start</para> - /// <para>/ connecting, and then another one on either timeout or successful connection.</para> - /// <para>/</para> - /// <para>/ If the server does not have any identity configured, then their network address</para> - /// <para>/ will be the only identity in use. Or, the network host may provide a platform-specific</para> - /// <para>/ identity with or without a valid certificate to authenticate that identity. (These</para> - /// <para>/ details will be contained in the SteamNetConnectionStatusChangedCallback_t.) It's</para> - /// <para>/ up to your application to decide whether to allow the connection.</para> - /// <para>/</para> - /// <para>/ By default, all connections will get basic encryption sufficient to prevent</para> - /// <para>/ casual eavesdropping. But note that without certificates (or a shared secret</para> - /// <para>/ distributed through some other out-of-band mechanism), you don't have any</para> - /// <para>/ way of knowing who is actually on the other end, and thus are vulnerable to</para> - /// <para>/ man-in-the-middle attacks.</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// </summary> - public static HSteamNetConnection ConnectByIPAddress(ref SteamNetworkingIPAddr address, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableGameServer(); - return (HSteamNetConnection)NativeMethods.ISteamNetworkingSockets_ConnectByIPAddress(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), ref address, nOptions, pOptions); - } - - /// <summary> - /// <para>/ Like CreateListenSocketIP, but clients will connect using ConnectP2P.</para> - /// <para>/</para> - /// <para>/ nLocalVirtualPort specifies how clients can connect to this socket using</para> - /// <para>/ ConnectP2P. It's very common for applications to only have one listening socket;</para> - /// <para>/ in that case, use zero. If you need to open multiple listen sockets and have clients</para> - /// <para>/ be able to connect to one or the other, then nLocalVirtualPort should be a small</para> - /// <para>/ integer (<1000) unique to each listen socket you create.</para> - /// <para>/</para> - /// <para>/ If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess()</para> - /// <para>/ when your app initializes.</para> - /// <para>/</para> - /// <para>/ If you are listening on a dedicated servers in known data center,</para> - /// <para>/ then you can listen using this function instead of CreateHostedDedicatedServerListenSocket,</para> - /// <para>/ to allow clients to connect without a ticket. Any user that owns</para> - /// <para>/ the app and is signed into Steam will be able to attempt to connect to</para> - /// <para>/ your server. Also, a connection attempt may require the client to</para> - /// <para>/ be connected to Steam, which is one more moving part that may fail. When</para> - /// <para>/ tickets are used, then once a ticket is obtained, a client can connect to</para> - /// <para>/ your server even if they got disconnected from Steam or Steam is offline.</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// </summary> - public static HSteamListenSocket CreateListenSocketP2P(int nLocalVirtualPort, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableGameServer(); - return (HSteamListenSocket)NativeMethods.ISteamNetworkingSockets_CreateListenSocketP2P(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), nLocalVirtualPort, nOptions, pOptions); - } - - /// <summary> - /// <para>/ Begin connecting to a peer that is identified using a platform-specific identifier.</para> - /// <para>/ This uses the default rendezvous service, which depends on the platform and library</para> - /// <para>/ configuration. (E.g. on Steam, it goes through the steam backend.)</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// <para>/</para> - /// <para>/ To use your own signaling service, see:</para> - /// <para>/ - ConnectP2PCustomSignaling</para> - /// <para>/ - k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling</para> - /// </summary> - public static HSteamNetConnection ConnectP2P(ref SteamNetworkingIdentity identityRemote, int nRemoteVirtualPort, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableGameServer(); - return (HSteamNetConnection)NativeMethods.ISteamNetworkingSockets_ConnectP2P(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), ref identityRemote, nRemoteVirtualPort, nOptions, pOptions); - } - - /// <summary> - /// <para>/ Accept an incoming connection that has been received on a listen socket.</para> - /// <para>/</para> - /// <para>/ When a connection attempt is received (perhaps after a few basic handshake</para> - /// <para>/ packets have been exchanged to prevent trivial spoofing), a connection interface</para> - /// <para>/ object is created in the k_ESteamNetworkingConnectionState_Connecting state</para> - /// <para>/ and a SteamNetConnectionStatusChangedCallback_t is posted. At this point, your</para> - /// <para>/ application MUST either accept or close the connection. (It may not ignore it.)</para> - /// <para>/ Accepting the connection will transition it either into the connected state,</para> - /// <para>/ or the finding route state, depending on the connection type.</para> - /// <para>/</para> - /// <para>/ You should take action within a second or two, because accepting the connection is</para> - /// <para>/ what actually sends the reply notifying the client that they are connected. If you</para> - /// <para>/ delay taking action, from the client's perspective it is the same as the network</para> - /// <para>/ being unresponsive, and the client may timeout the connection attempt. In other</para> - /// <para>/ words, the client cannot distinguish between a delay caused by network problems</para> - /// <para>/ and a delay caused by the application.</para> - /// <para>/</para> - /// <para>/ This means that if your application goes for more than a few seconds without</para> - /// <para>/ processing callbacks (for example, while loading a map), then there is a chance</para> - /// <para>/ that a client may attempt to connect in that interval and fail due to timeout.</para> - /// <para>/</para> - /// <para>/ If the application does not respond to the connection attempt in a timely manner,</para> - /// <para>/ and we stop receiving communication from the client, the connection attempt will</para> - /// <para>/ be timed out locally, transitioning the connection to the</para> - /// <para>/ k_ESteamNetworkingConnectionState_ProblemDetectedLocally state. The client may also</para> - /// <para>/ close the connection before it is accepted, and a transition to the</para> - /// <para>/ k_ESteamNetworkingConnectionState_ClosedByPeer is also possible depending the exact</para> - /// <para>/ sequence of events.</para> - /// <para>/</para> - /// <para>/ Returns k_EResultInvalidParam if the handle is invalid.</para> - /// <para>/ Returns k_EResultInvalidState if the connection is not in the appropriate state.</para> - /// <para>/ (Remember that the connection state could change in between the time that the</para> - /// <para>/ notification being posted to the queue and when it is received by the application.)</para> - /// <para>/</para> - /// <para>/ A note about connection configuration options. If you need to set any configuration</para> - /// <para>/ options that are common to all connections accepted through a particular listen</para> - /// <para>/ socket, consider setting the options on the listen socket, since such options are</para> - /// <para>/ inherited automatically. If you really do need to set options that are connection</para> - /// <para>/ specific, it is safe to set them on the connection before accepting the connection.</para> - /// </summary> - public static EResult AcceptConnection(HSteamNetConnection hConn) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_AcceptConnection(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hConn); - } - - /// <summary> - /// <para>/ Disconnects from the remote host and invalidates the connection handle.</para> - /// <para>/ Any unread data on the connection is discarded.</para> - /// <para>/</para> - /// <para>/ nReason is an application defined code that will be received on the other</para> - /// <para>/ end and recorded (when possible) in backend analytics. The value should</para> - /// <para>/ come from a restricted range. (See ESteamNetConnectionEnd.) If you don't need</para> - /// <para>/ to communicate any information to the remote host, and do not want analytics to</para> - /// <para>/ be able to distinguish "normal" connection terminations from "exceptional" ones,</para> - /// <para>/ You may pass zero, in which case the generic value of</para> - /// <para>/ k_ESteamNetConnectionEnd_App_Generic will be used.</para> - /// <para>/</para> - /// <para>/ pszDebug is an optional human-readable diagnostic string that will be received</para> - /// <para>/ by the remote host and recorded (when possible) in backend analytics.</para> - /// <para>/</para> - /// <para>/ If you wish to put the socket into a "linger" state, where an attempt is made to</para> - /// <para>/ flush any remaining sent data, use bEnableLinger=true. Otherwise reliable data</para> - /// <para>/ is not flushed.</para> - /// <para>/</para> - /// <para>/ If the connection has already ended and you are just freeing up the</para> - /// <para>/ connection interface, the reason code, debug string, and linger flag are</para> - /// <para>/ ignored.</para> - /// </summary> - public static bool CloseConnection(HSteamNetConnection hPeer, int nReason, string pszDebug, bool bEnableLinger) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszDebug2 = new InteropHelp.UTF8StringHandle(pszDebug)) { - return NativeMethods.ISteamNetworkingSockets_CloseConnection(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hPeer, nReason, pszDebug2, bEnableLinger); - } - } - - /// <summary> - /// <para>/ Destroy a listen socket. All the connections that were accepting on the listen</para> - /// <para>/ socket are closed ungracefully.</para> - /// </summary> - public static bool CloseListenSocket(HSteamListenSocket hSocket) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_CloseListenSocket(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hSocket); - } - - /// <summary> - /// <para>/ Set connection user data. the data is returned in the following places</para> - /// <para>/ - You can query it using GetConnectionUserData.</para> - /// <para>/ - The SteamNetworkingmessage_t structure.</para> - /// <para>/ - The SteamNetConnectionInfo_t structure.</para> - /// <para>/ (Which is a member of SteamNetConnectionStatusChangedCallback_t -- but see WARNINGS below!!!!)</para> - /// <para>/</para> - /// <para>/ Do you need to set this atomically when the connection is created?</para> - /// <para>/ See k_ESteamNetworkingConfig_ConnectionUserData.</para> - /// <para>/</para> - /// <para>/ WARNING: Be *very careful* when using the value provided in callbacks structs.</para> - /// <para>/ Callbacks are queued, and the value that you will receive in your</para> - /// <para>/ callback is the userdata that was effective at the time the callback</para> - /// <para>/ was queued. There are subtle race conditions that can hapen if you</para> - /// <para>/ don't understand this!</para> - /// <para>/</para> - /// <para>/ If any incoming messages for this connection are queued, the userdata</para> - /// <para>/ field is updated, so that when when you receive messages (e.g. with</para> - /// <para>/ ReceiveMessagesOnConnection), they will always have the very latest</para> - /// <para>/ userdata. So the tricky race conditions that can happen with callbacks</para> - /// <para>/ do not apply to retrieving messages.</para> - /// <para>/</para> - /// <para>/ Returns false if the handle is invalid.</para> - /// </summary> - public static bool SetConnectionUserData(HSteamNetConnection hPeer, long nUserData) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_SetConnectionUserData(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hPeer, nUserData); - } - - /// <summary> - /// <para>/ Fetch connection user data. Returns -1 if handle is invalid</para> - /// <para>/ or if you haven't set any userdata on the connection.</para> - /// </summary> - public static long GetConnectionUserData(HSteamNetConnection hPeer) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_GetConnectionUserData(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hPeer); - } - - /// <summary> - /// <para>/ Set a name for the connection, used mostly for debugging</para> - /// </summary> - public static void SetConnectionName(HSteamNetConnection hPeer, string pszName) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszName2 = new InteropHelp.UTF8StringHandle(pszName)) { - NativeMethods.ISteamNetworkingSockets_SetConnectionName(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hPeer, pszName2); - } - } - - /// <summary> - /// <para>/ Fetch connection name. Returns false if handle is invalid</para> - /// </summary> - public static bool GetConnectionName(HSteamNetConnection hPeer, out string pszName, int nMaxLen) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pszName2 = Marshal.AllocHGlobal(nMaxLen); - bool ret = NativeMethods.ISteamNetworkingSockets_GetConnectionName(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hPeer, pszName2, nMaxLen); - pszName = ret ? InteropHelp.PtrToStringUTF8(pszName2) : null; - Marshal.FreeHGlobal(pszName2); - return ret; - } - - /// <summary> - /// <para>/ Send a message to the remote host on the specified connection.</para> - /// <para>/</para> - /// <para>/ nSendFlags determines the delivery guarantees that will be provided,</para> - /// <para>/ when data should be buffered, etc. E.g. k_nSteamNetworkingSend_Unreliable</para> - /// <para>/</para> - /// <para>/ Note that the semantics we use for messages are not precisely</para> - /// <para>/ the same as the semantics of a standard "stream" socket.</para> - /// <para>/ (SOCK_STREAM) For an ordinary stream socket, the boundaries</para> - /// <para>/ between chunks are not considered relevant, and the sizes of</para> - /// <para>/ the chunks of data written will not necessarily match up to</para> - /// <para>/ the sizes of the chunks that are returned by the reads on</para> - /// <para>/ the other end. The remote host might read a partial chunk,</para> - /// <para>/ or chunks might be coalesced. For the message semantics</para> - /// <para>/ used here, however, the sizes WILL match. Each send call</para> - /// <para>/ will match a successful read call on the remote host</para> - /// <para>/ one-for-one. If you are porting existing stream-oriented</para> - /// <para>/ code to the semantics of reliable messages, your code should</para> - /// <para>/ work the same, since reliable message semantics are more</para> - /// <para>/ strict than stream semantics. The only caveat is related to</para> - /// <para>/ performance: there is per-message overhead to retain the</para> - /// <para>/ message sizes, and so if your code sends many small chunks</para> - /// <para>/ of data, performance will suffer. Any code based on stream</para> - /// <para>/ sockets that does not write excessively small chunks will</para> - /// <para>/ work without any changes.</para> - /// <para>/</para> - /// <para>/ The pOutMessageNumber is an optional pointer to receive the</para> - /// <para>/ message number assigned to the message, if sending was successful.</para> - /// <para>/</para> - /// <para>/ Returns:</para> - /// <para>/ - k_EResultInvalidParam: invalid connection handle, or the individual message is too big.</para> - /// <para>/ (See k_cbMaxSteamNetworkingSocketsMessageSizeSend)</para> - /// <para>/ - k_EResultInvalidState: connection is in an invalid state</para> - /// <para>/ - k_EResultNoConnection: connection has ended</para> - /// <para>/ - k_EResultIgnored: You used k_nSteamNetworkingSend_NoDelay, and the message was dropped because</para> - /// <para>/ we were not ready to send it.</para> - /// <para>/ - k_EResultLimitExceeded: there was already too much data queued to be sent.</para> - /// <para>/ (See k_ESteamNetworkingConfig_SendBufferSize)</para> - /// </summary> - public static EResult SendMessageToConnection(HSteamNetConnection hConn, IntPtr pData, uint cbData, int nSendFlags, out long pOutMessageNumber) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_SendMessageToConnection(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hConn, pData, cbData, nSendFlags, out pOutMessageNumber); - } - - /// <summary> - /// <para>/ Send one or more messages without copying the message payload.</para> - /// <para>/ This is the most efficient way to send messages. To use this</para> - /// <para>/ function, you must first allocate a message object using</para> - /// <para>/ ISteamNetworkingUtils::AllocateMessage. (Do not declare one</para> - /// <para>/ on the stack or allocate your own.)</para> - /// <para>/</para> - /// <para>/ You should fill in the message payload. You can either let</para> - /// <para>/ it allocate the buffer for you and then fill in the payload,</para> - /// <para>/ or if you already have a buffer allocated, you can just point</para> - /// <para>/ m_pData at your buffer and set the callback to the appropriate function</para> - /// <para>/ to free it. Note that if you use your own buffer, it MUST remain valid</para> - /// <para>/ until the callback is executed. And also note that your callback can be</para> - /// <para>/ invoked at any time from any thread (perhaps even before SendMessages</para> - /// <para>/ returns!), so it MUST be fast and threadsafe.</para> - /// <para>/</para> - /// <para>/ You MUST also fill in:</para> - /// <para>/ - m_conn - the handle of the connection to send the message to</para> - /// <para>/ - m_nFlags - bitmask of k_nSteamNetworkingSend_xxx flags.</para> - /// <para>/</para> - /// <para>/ All other fields are currently reserved and should not be modified.</para> - /// <para>/</para> - /// <para>/ The library will take ownership of the message structures. They may</para> - /// <para>/ be modified or become invalid at any time, so you must not read them</para> - /// <para>/ after passing them to this function.</para> - /// <para>/</para> - /// <para>/ pOutMessageNumberOrResult is an optional array that will receive,</para> - /// <para>/ for each message, the message number that was assigned to the message</para> - /// <para>/ if sending was successful. If sending failed, then a negative EResult</para> - /// <para>/ value is placed into the array. For example, the array will hold</para> - /// <para>/ -k_EResultInvalidState if the connection was in an invalid state.</para> - /// <para>/ See ISteamNetworkingSockets::SendMessageToConnection for possible</para> - /// <para>/ failure codes.</para> - /// </summary> - public static void SendMessages(int nMessages, SteamNetworkingMessage_t[] pMessages, long[] pOutMessageNumberOrResult) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamNetworkingSockets_SendMessages(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), nMessages, pMessages, pOutMessageNumberOrResult); - } - - /// <summary> - /// <para>/ Flush any messages waiting on the Nagle timer and send them</para> - /// <para>/ at the next transmission opportunity (often that means right now).</para> - /// <para>/</para> - /// <para>/ If Nagle is enabled (it's on by default) then when calling</para> - /// <para>/ SendMessageToConnection the message will be buffered, up to the Nagle time</para> - /// <para>/ before being sent, to merge small messages into the same packet.</para> - /// <para>/ (See k_ESteamNetworkingConfig_NagleTime)</para> - /// <para>/</para> - /// <para>/ Returns:</para> - /// <para>/ k_EResultInvalidParam: invalid connection handle</para> - /// <para>/ k_EResultInvalidState: connection is in an invalid state</para> - /// <para>/ k_EResultNoConnection: connection has ended</para> - /// <para>/ k_EResultIgnored: We weren't (yet) connected, so this operation has no effect.</para> - /// </summary> - public static EResult FlushMessagesOnConnection(HSteamNetConnection hConn) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_FlushMessagesOnConnection(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hConn); - } - - /// <summary> - /// <para>/ Fetch the next available message(s) from the connection, if any.</para> - /// <para>/ Returns the number of messages returned into your array, up to nMaxMessages.</para> - /// <para>/ If the connection handle is invalid, -1 is returned.</para> - /// <para>/</para> - /// <para>/ The order of the messages returned in the array is relevant.</para> - /// <para>/ Reliable messages will be received in the order they were sent (and with the</para> - /// <para>/ same sizes --- see SendMessageToConnection for on this subtle difference from a stream socket).</para> - /// <para>/</para> - /// <para>/ Unreliable messages may be dropped, or delivered out of order with respect to</para> - /// <para>/ each other or with respect to reliable messages. The same unreliable message</para> - /// <para>/ may be received multiple times.</para> - /// <para>/</para> - /// <para>/ If any messages are returned, you MUST call SteamNetworkingMessage_t::Release() on each</para> - /// <para>/ of them free up resources after you are done. It is safe to keep the object alive for</para> - /// <para>/ a little while (put it into some queue, etc), and you may call Release() from any thread.</para> - /// </summary> - public static int ReceiveMessagesOnConnection(HSteamNetConnection hConn, IntPtr[] ppOutMessages, int nMaxMessages) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_ReceiveMessagesOnConnection(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hConn, ppOutMessages, nMaxMessages); - } - - /// <summary> - /// <para>/ Returns basic information about the high-level state of the connection.</para> - /// </summary> - public static bool GetConnectionInfo(HSteamNetConnection hConn, out SteamNetConnectionInfo_t pInfo) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_GetConnectionInfo(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hConn, out pInfo); - } - - /// <summary> - /// <para>/ Returns a small set of information about the real-time state of the connection</para> - /// <para>/ and the queue status of each lane.</para> - /// <para>/</para> - /// <para>/ - pStatus may be NULL if the information is not desired. (E.g. you are only interested</para> - /// <para>/ in the lane information.)</para> - /// <para>/ - On entry, nLanes specifies the length of the pLanes array. This may be 0</para> - /// <para>/ if you do not wish to receive any lane data. It's OK for this to be smaller than</para> - /// <para>/ the total number of configured lanes.</para> - /// <para>/ - pLanes points to an array that will receive lane-specific info. It can be NULL</para> - /// <para>/ if this is not needed.</para> - /// <para>/</para> - /// <para>/ Return value:</para> - /// <para>/ - k_EResultNoConnection - connection handle is invalid or connection has been closed.</para> - /// <para>/ - k_EResultInvalidParam - nLanes is bad</para> - /// </summary> - public static EResult GetConnectionRealTimeStatus(HSteamNetConnection hConn, ref SteamNetConnectionRealTimeStatus_t pStatus, int nLanes, ref SteamNetConnectionRealTimeLaneStatus_t pLanes) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_GetConnectionRealTimeStatus(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hConn, ref pStatus, nLanes, ref pLanes); - } - - /// <summary> - /// <para>/ Returns detailed connection stats in text format. Useful</para> - /// <para>/ for dumping to a log, etc.</para> - /// <para>/</para> - /// <para>/ Returns:</para> - /// <para>/ -1 failure (bad connection handle)</para> - /// <para>/ 0 OK, your buffer was filled in and '\0'-terminated</para> - /// <para>/ >0 Your buffer was either nullptr, or it was too small and the text got truncated.</para> - /// <para>/ Try again with a buffer of at least N bytes.</para> - /// </summary> - public static int GetDetailedConnectionStatus(HSteamNetConnection hConn, out string pszBuf, int cbBuf) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pszBuf2 = Marshal.AllocHGlobal(cbBuf); - int ret = NativeMethods.ISteamNetworkingSockets_GetDetailedConnectionStatus(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hConn, pszBuf2, cbBuf); - pszBuf = ret != -1 ? InteropHelp.PtrToStringUTF8(pszBuf2) : null; - Marshal.FreeHGlobal(pszBuf2); - return ret; - } - - /// <summary> - /// <para>/ Returns local IP and port that a listen socket created using CreateListenSocketIP is bound to.</para> - /// <para>/</para> - /// <para>/ An IPv6 address of ::0 means "any IPv4 or IPv6"</para> - /// <para>/ An IPv6 address of ::ffff:0000:0000 means "any IPv4"</para> - /// </summary> - public static bool GetListenSocketAddress(HSteamListenSocket hSocket, out SteamNetworkingIPAddr address) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_GetListenSocketAddress(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hSocket, out address); - } - - /// <summary> - /// <para>/ Create a pair of connections that are talking to each other, e.g. a loopback connection.</para> - /// <para>/ This is very useful for testing, or so that your client/server code can work the same</para> - /// <para>/ even when you are running a local "server".</para> - /// <para>/</para> - /// <para>/ The two connections will immediately be placed into the connected state, and no callbacks</para> - /// <para>/ will be posted immediately. After this, if you close either connection, the other connection</para> - /// <para>/ will receive a callback, exactly as if they were communicating over the network. You must</para> - /// <para>/ close *both* sides in order to fully clean up the resources!</para> - /// <para>/</para> - /// <para>/ By default, internal buffers are used, completely bypassing the network, the chopping up of</para> - /// <para>/ messages into packets, encryption, copying the payload, etc. This means that loopback</para> - /// <para>/ packets, by default, will not simulate lag or loss. Passing true for bUseNetworkLoopback will</para> - /// <para>/ cause the socket pair to send packets through the local network loopback device (127.0.0.1)</para> - /// <para>/ on ephemeral ports. Fake lag and loss are supported in this case, and CPU time is expended</para> - /// <para>/ to encrypt and decrypt.</para> - /// <para>/</para> - /// <para>/ If you wish to assign a specific identity to either connection, you may pass a particular</para> - /// <para>/ identity. Otherwise, if you pass nullptr, the respective connection will assume a generic</para> - /// <para>/ "localhost" identity. If you use real network loopback, this might be translated to the</para> - /// <para>/ actual bound loopback port. Otherwise, the port will be zero.</para> - /// </summary> - public static bool CreateSocketPair(out HSteamNetConnection pOutConnection1, out HSteamNetConnection pOutConnection2, bool bUseNetworkLoopback, ref SteamNetworkingIdentity pIdentity1, ref SteamNetworkingIdentity pIdentity2) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_CreateSocketPair(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), out pOutConnection1, out pOutConnection2, bUseNetworkLoopback, ref pIdentity1, ref pIdentity2); - } - - /// <summary> - /// <para>/ Configure multiple outbound messages streams ("lanes") on a connection, and</para> - /// <para>/ control head-of-line blocking between them. Messages within a given lane</para> - /// <para>/ are always sent in the order they are queued, but messages from different</para> - /// <para>/ lanes may be sent out of order. Each lane has its own message number</para> - /// <para>/ sequence. The first message sent on each lane will be assigned the number 1.</para> - /// <para>/</para> - /// <para>/ Each lane has a "priority". Lower priority lanes will only be processed</para> - /// <para>/ when all higher-priority lanes are empty. The magnitudes of the priority</para> - /// <para>/ values are not relevant, only their sort order. Higher numeric values</para> - /// <para>/ take priority over lower numeric values.</para> - /// <para>/</para> - /// <para>/ Each lane also is assigned a weight, which controls the approximate proportion</para> - /// <para>/ of the bandwidth that will be consumed by the lane, relative to other lanes</para> - /// <para>/ of the same priority. (This is assuming the lane stays busy. An idle lane</para> - /// <para>/ does not build up "credits" to be be spent once a message is queued.)</para> - /// <para>/ This value is only meaningful as a proportion, relative to other lanes with</para> - /// <para>/ the same priority. For lanes with different priorities, the strict priority</para> - /// <para>/ order will prevail, and their weights relative to each other are not relevant.</para> - /// <para>/ Thus, if a lane has a unique priority value, the weight value for that lane is</para> - /// <para>/ not relevant.</para> - /// <para>/</para> - /// <para>/ Example: 3 lanes, with priorities [ 0, 10, 10 ] and weights [ (NA), 20, 5 ].</para> - /// <para>/ Messages sent on the first will always be sent first, before messages in the</para> - /// <para>/ other two lanes. Its weight value is irrelevant, since there are no other</para> - /// <para>/ lanes with priority=0. The other two lanes will share bandwidth, with the second</para> - /// <para>/ and third lanes sharing bandwidth using a ratio of approximately 4:1.</para> - /// <para>/ (The weights [ NA, 4, 1 ] would be equivalent.)</para> - /// <para>/</para> - /// <para>/ Notes:</para> - /// <para>/ - At the time of this writing, some code has performance cost that is linear</para> - /// <para>/ in the number of lanes, so keep the number of lanes to an absolute minimum.</para> - /// <para>/ 3 or so is fine; >8 is a lot. The max number of lanes on Steam is 255,</para> - /// <para>/ which is a very large number and not recommended! If you are compiling this</para> - /// <para>/ library from source, see STEAMNETWORKINGSOCKETS_MAX_LANES.)</para> - /// <para>/ - Lane priority values may be any int. Their absolute value is not relevant,</para> - /// <para>/ only the order matters.</para> - /// <para>/ - Weights must be positive, and due to implementation details, they are restricted</para> - /// <para>/ to 16-bit values. The absolute magnitudes don't matter, just the proportions.</para> - /// <para>/ - Messages sent on a lane index other than 0 have a small overhead on the wire,</para> - /// <para>/ so for maximum wire efficiency, lane 0 should be the "most common" lane, regardless</para> - /// <para>/ of priorities or weights.</para> - /// <para>/ - A connection has a single lane by default. Calling this function with</para> - /// <para>/ nNumLanes=1 is legal, but pointless, since the priority and weight values are</para> - /// <para>/ irrelevant in that case.</para> - /// <para>/ - You may reconfigure connection lanes at any time, however reducing the number of</para> - /// <para>/ lanes is not allowed.</para> - /// <para>/ - Reconfiguring lanes might restart any bandwidth sharing balancing. Usually you</para> - /// <para>/ will call this function once, near the start of the connection, perhaps after</para> - /// <para>/ exchanging a few messages.</para> - /// <para>/ - To assign all lanes the same priority, you may use pLanePriorities=NULL.</para> - /// <para>/ - If you wish all lanes with the same priority to share bandwidth equally (or</para> - /// <para>/ if no two lanes have the same priority value, and thus priority values are</para> - /// <para>/ irrelevant), you may use pLaneWeights=NULL</para> - /// <para>/ - Priorities and weights determine the order that messages are SENT on the wire.</para> - /// <para>/ There are NO GUARANTEES on the order that messages are RECEIVED! Due to packet</para> - /// <para>/ loss, out-of-order delivery, and subtle details of packet serialization, messages</para> - /// <para>/ might still be received slightly out-of-order! The *only* strong guarantee is that</para> - /// <para>/ *reliable* messages on the *same lane* will be delivered in the order they are sent.</para> - /// <para>/ - Each host configures the lanes for the packets they send; the lanes for the flow</para> - /// <para>/ in one direction are completely unrelated to the lanes in the opposite direction.</para> - /// <para>/</para> - /// <para>/ Return value:</para> - /// <para>/ - k_EResultNoConnection - bad hConn</para> - /// <para>/ - k_EResultInvalidParam - Invalid number of lanes, bad weights, or you tried to reduce the number of lanes</para> - /// <para>/ - k_EResultInvalidState - Connection is already dead, etc</para> - /// <para>/</para> - /// <para>/ See also:</para> - /// <para>/ SteamNetworkingMessage_t::m_idxLane</para> - /// </summary> - public static EResult ConfigureConnectionLanes(HSteamNetConnection hConn, int nNumLanes, out int pLanePriorities, out ushort pLaneWeights) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_ConfigureConnectionLanes(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hConn, nNumLanes, out pLanePriorities, out pLaneWeights); - } - - /// <summary> - /// <para> Identity and authentication</para> - /// <para>/ Get the identity assigned to this interface.</para> - /// <para>/ E.g. on Steam, this is the user's SteamID, or for the gameserver interface, the SteamID assigned</para> - /// <para>/ to the gameserver. Returns false and sets the result to an invalid identity if we don't know</para> - /// <para>/ our identity yet. (E.g. GameServer has not logged in. On Steam, the user will know their SteamID</para> - /// <para>/ even if they are not signed into Steam.)</para> - /// </summary> - public static bool GetIdentity(out SteamNetworkingIdentity pIdentity) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_GetIdentity(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), out pIdentity); - } - - /// <summary> - /// <para>/ Indicate our desire to be ready participate in authenticated communications.</para> - /// <para>/ If we are currently not ready, then steps will be taken to obtain the necessary</para> - /// <para>/ certificates. (This includes a certificate for us, as well as any CA certificates</para> - /// <para>/ needed to authenticate peers.)</para> - /// <para>/</para> - /// <para>/ You can call this at program init time if you know that you are going to</para> - /// <para>/ be making authenticated connections, so that we will be ready immediately when</para> - /// <para>/ those connections are attempted. (Note that essentially all connections require</para> - /// <para>/ authentication, with the exception of ordinary UDP connections with authentication</para> - /// <para>/ disabled using k_ESteamNetworkingConfig_IP_AllowWithoutAuth.) If you don't call</para> - /// <para>/ this function, we will wait until a feature is utilized that that necessitates</para> - /// <para>/ these resources.</para> - /// <para>/</para> - /// <para>/ You can also call this function to force a retry, if failure has occurred.</para> - /// <para>/ Once we make an attempt and fail, we will not automatically retry.</para> - /// <para>/ In this respect, the behavior of the system after trying and failing is the same</para> - /// <para>/ as before the first attempt: attempting authenticated communication or calling</para> - /// <para>/ this function will call the system to attempt to acquire the necessary resources.</para> - /// <para>/</para> - /// <para>/ You can use GetAuthenticationStatus or listen for SteamNetAuthenticationStatus_t</para> - /// <para>/ to monitor the status.</para> - /// <para>/</para> - /// <para>/ Returns the current value that would be returned from GetAuthenticationStatus.</para> - /// </summary> - public static ESteamNetworkingAvailability InitAuthentication() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_InitAuthentication(CSteamGameServerAPIContext.GetSteamNetworkingSockets()); - } - - /// <summary> - /// <para>/ Query our readiness to participate in authenticated communications. A</para> - /// <para>/ SteamNetAuthenticationStatus_t callback is posted any time this status changes,</para> - /// <para>/ but you can use this function to query it at any time.</para> - /// <para>/</para> - /// <para>/ The value of SteamNetAuthenticationStatus_t::m_eAvail is returned. If you only</para> - /// <para>/ want this high level status, you can pass NULL for pDetails. If you want further</para> - /// <para>/ details, pass non-NULL to receive them.</para> - /// </summary> - public static ESteamNetworkingAvailability GetAuthenticationStatus(out SteamNetAuthenticationStatus_t pDetails) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_GetAuthenticationStatus(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), out pDetails); - } - - /// <summary> - /// <para> Poll groups. A poll group is a set of connections that can be polled efficiently.</para> - /// <para> (In our API, to "poll" a connection means to retrieve all pending messages. We</para> - /// <para> actually don't have an API to "poll" the connection *state*, like BSD sockets.)</para> - /// <para>/ Create a new poll group.</para> - /// <para>/</para> - /// <para>/ You should destroy the poll group when you are done using DestroyPollGroup</para> - /// </summary> - public static HSteamNetPollGroup CreatePollGroup() { - InteropHelp.TestIfAvailableGameServer(); - return (HSteamNetPollGroup)NativeMethods.ISteamNetworkingSockets_CreatePollGroup(CSteamGameServerAPIContext.GetSteamNetworkingSockets()); - } - - /// <summary> - /// <para>/ Destroy a poll group created with CreatePollGroup().</para> - /// <para>/</para> - /// <para>/ If there are any connections in the poll group, they are removed from the group,</para> - /// <para>/ and left in a state where they are not part of any poll group.</para> - /// <para>/ Returns false if passed an invalid poll group handle.</para> - /// </summary> - public static bool DestroyPollGroup(HSteamNetPollGroup hPollGroup) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_DestroyPollGroup(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hPollGroup); - } - - /// <summary> - /// <para>/ Assign a connection to a poll group. Note that a connection may only belong to a</para> - /// <para>/ single poll group. Adding a connection to a poll group implicitly removes it from</para> - /// <para>/ any other poll group it is in.</para> - /// <para>/</para> - /// <para>/ You can pass k_HSteamNetPollGroup_Invalid to remove a connection from its current</para> - /// <para>/ poll group without adding it to a new poll group.</para> - /// <para>/</para> - /// <para>/ If there are received messages currently pending on the connection, an attempt</para> - /// <para>/ is made to add them to the queue of messages for the poll group in approximately</para> - /// <para>/ the order that would have applied if the connection was already part of the poll</para> - /// <para>/ group at the time that the messages were received.</para> - /// <para>/</para> - /// <para>/ Returns false if the connection handle is invalid, or if the poll group handle</para> - /// <para>/ is invalid (and not k_HSteamNetPollGroup_Invalid).</para> - /// </summary> - public static bool SetConnectionPollGroup(HSteamNetConnection hConn, HSteamNetPollGroup hPollGroup) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_SetConnectionPollGroup(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hConn, hPollGroup); - } - - /// <summary> - /// <para>/ Same as ReceiveMessagesOnConnection, but will return the next messages available</para> - /// <para>/ on any connection in the poll group. Examine SteamNetworkingMessage_t::m_conn</para> - /// <para>/ to know which connection. (SteamNetworkingMessage_t::m_nConnUserData might also</para> - /// <para>/ be useful.)</para> - /// <para>/</para> - /// <para>/ Delivery order of messages among different connections will usually match the</para> - /// <para>/ order that the last packet was received which completed the message. But this</para> - /// <para>/ is not a strong guarantee, especially for packets received right as a connection</para> - /// <para>/ is being assigned to poll group.</para> - /// <para>/</para> - /// <para>/ Delivery order of messages on the same connection is well defined and the</para> - /// <para>/ same guarantees are present as mentioned in ReceiveMessagesOnConnection.</para> - /// <para>/ (But the messages are not grouped by connection, so they will not necessarily</para> - /// <para>/ appear consecutively in the list; they may be interleaved with messages for</para> - /// <para>/ other connections.)</para> - /// </summary> - public static int ReceiveMessagesOnPollGroup(HSteamNetPollGroup hPollGroup, IntPtr[] ppOutMessages, int nMaxMessages) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_ReceiveMessagesOnPollGroup(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hPollGroup, ppOutMessages, nMaxMessages); - } - - /// <summary> - /// <para> Clients connecting to dedicated servers hosted in a data center,</para> - /// <para> using tickets issued by your game coordinator. If you are not</para> - /// <para> issuing your own tickets to restrict who can attempt to connect</para> - /// <para> to your server, then you won't use these functions.</para> - /// <para>/ Call this when you receive a ticket from your backend / matchmaking system. Puts the</para> - /// <para>/ ticket into a persistent cache, and optionally returns the parsed ticket.</para> - /// <para>/</para> - /// <para>/ See stamdatagram_ticketgen.h for more details.</para> - /// </summary> - public static bool ReceivedRelayAuthTicket(IntPtr pvTicket, int cbTicket, out SteamDatagramRelayAuthTicket pOutParsedTicket) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_ReceivedRelayAuthTicket(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), pvTicket, cbTicket, out pOutParsedTicket); - } - - /// <summary> - /// <para>/ Search cache for a ticket to talk to the server on the specified virtual port.</para> - /// <para>/ If found, returns the number of seconds until the ticket expires, and optionally</para> - /// <para>/ the complete cracked ticket. Returns 0 if we don't have a ticket.</para> - /// <para>/</para> - /// <para>/ Typically this is useful just to confirm that you have a ticket, before you</para> - /// <para>/ call ConnectToHostedDedicatedServer to connect to the server.</para> - /// </summary> - public static int FindRelayAuthTicketForServer(ref SteamNetworkingIdentity identityGameServer, int nRemoteVirtualPort, out SteamDatagramRelayAuthTicket pOutParsedTicket) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_FindRelayAuthTicketForServer(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), ref identityGameServer, nRemoteVirtualPort, out pOutParsedTicket); - } - - /// <summary> - /// <para>/ Client call to connect to a server hosted in a Valve data center, on the specified virtual</para> - /// <para>/ port. You must have placed a ticket for this server into the cache, or else this connect</para> - /// <para>/ attempt will fail! If you are not issuing your own tickets, then to connect to a dedicated</para> - /// <para>/ server via SDR in auto-ticket mode, use ConnectP2P. (The server must be configured to allow</para> - /// <para>/ this type of connection by listening using CreateListenSocketP2P.)</para> - /// <para>/</para> - /// <para>/ You may wonder why tickets are stored in a cache, instead of simply being passed as an argument</para> - /// <para>/ here. The reason is to make reconnection to a gameserver robust, even if the client computer loses</para> - /// <para>/ connection to Steam or the central backend, or the app is restarted or crashes, etc.</para> - /// <para>/</para> - /// <para>/ If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess()</para> - /// <para>/ when your app initializes</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// </summary> - public static HSteamNetConnection ConnectToHostedDedicatedServer(ref SteamNetworkingIdentity identityTarget, int nRemoteVirtualPort, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableGameServer(); - return (HSteamNetConnection)NativeMethods.ISteamNetworkingSockets_ConnectToHostedDedicatedServer(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), ref identityTarget, nRemoteVirtualPort, nOptions, pOptions); - } - - /// <summary> - /// <para> Servers hosted in data centers known to the Valve relay network</para> - /// <para>/ Returns the value of the SDR_LISTEN_PORT environment variable. This</para> - /// <para>/ is the UDP server your server will be listening on. This will</para> - /// <para>/ configured automatically for you in production environments.</para> - /// <para>/</para> - /// <para>/ In development, you'll need to set it yourself. See</para> - /// <para>/ https://partner.steamgames.com/doc/api/ISteamNetworkingSockets</para> - /// <para>/ for more information on how to configure dev environments.</para> - /// </summary> - public static ushort GetHostedDedicatedServerPort() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_GetHostedDedicatedServerPort(CSteamGameServerAPIContext.GetSteamNetworkingSockets()); - } - - /// <summary> - /// <para>/ Returns 0 if SDR_LISTEN_PORT is not set. Otherwise, returns the data center the server</para> - /// <para>/ is running in. This will be k_SteamDatagramPOPID_dev in non-production environment.</para> - /// </summary> - public static SteamNetworkingPOPID GetHostedDedicatedServerPOPID() { - InteropHelp.TestIfAvailableGameServer(); - return (SteamNetworkingPOPID)NativeMethods.ISteamNetworkingSockets_GetHostedDedicatedServerPOPID(CSteamGameServerAPIContext.GetSteamNetworkingSockets()); - } - - /// <summary> - /// <para>/ Return info about the hosted server. This contains the PoPID of the server,</para> - /// <para>/ and opaque routing information that can be used by the relays to send traffic</para> - /// <para>/ to your server.</para> - /// <para>/</para> - /// <para>/ You will need to send this information to your backend, and put it in tickets,</para> - /// <para>/ so that the relays will know how to forward traffic from</para> - /// <para>/ clients to your server. See SteamDatagramRelayAuthTicket for more info.</para> - /// <para>/</para> - /// <para>/ Also, note that the routing information is contained in SteamDatagramGameCoordinatorServerLogin,</para> - /// <para>/ so if possible, it's preferred to use GetGameCoordinatorServerLogin to send this info</para> - /// <para>/ to your game coordinator service, and also login securely at the same time.</para> - /// <para>/</para> - /// <para>/ On a successful exit, k_EResultOK is returned</para> - /// <para>/</para> - /// <para>/ Unsuccessful exit:</para> - /// <para>/ - Something other than k_EResultOK is returned.</para> - /// <para>/ - k_EResultInvalidState: We are not configured to listen for SDR (SDR_LISTEN_SOCKET</para> - /// <para>/ is not set.)</para> - /// <para>/ - k_EResultPending: we do not (yet) have the authentication information needed.</para> - /// <para>/ (See GetAuthenticationStatus.) If you use environment variables to pre-fetch</para> - /// <para>/ the network config, this data should always be available immediately.</para> - /// <para>/ - A non-localized diagnostic debug message will be placed in m_data that describes</para> - /// <para>/ the cause of the failure.</para> - /// <para>/</para> - /// <para>/ NOTE: The returned blob is not encrypted. Send it to your backend, but don't</para> - /// <para>/ directly share it with clients.</para> - /// </summary> - public static EResult GetHostedDedicatedServerAddress(out SteamDatagramHostedAddress pRouting) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_GetHostedDedicatedServerAddress(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), out pRouting); - } - - /// <summary> - /// <para>/ Create a listen socket on the specified virtual port. The physical UDP port to use</para> - /// <para>/ will be determined by the SDR_LISTEN_PORT environment variable. If a UDP port is not</para> - /// <para>/ configured, this call will fail.</para> - /// <para>/</para> - /// <para>/ This call MUST be made through the SteamGameServerNetworkingSockets() interface.</para> - /// <para>/</para> - /// <para>/ This function should be used when you are using the ticket generator library</para> - /// <para>/ to issue your own tickets. Clients connecting to the server on this virtual</para> - /// <para>/ port will need a ticket, and they must connect using ConnectToHostedDedicatedServer.</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// </summary> - public static HSteamListenSocket CreateHostedDedicatedServerListenSocket(int nLocalVirtualPort, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableGameServer(); - return (HSteamListenSocket)NativeMethods.ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), nLocalVirtualPort, nOptions, pOptions); - } - - /// <summary> - /// <para>/ Generate an authentication blob that can be used to securely login with</para> - /// <para>/ your backend, using SteamDatagram_ParseHostedServerLogin. (See</para> - /// <para>/ steamdatagram_gamecoordinator.h)</para> - /// <para>/</para> - /// <para>/ Before calling the function:</para> - /// <para>/ - Populate the app data in pLoginInfo (m_cbAppData and m_appData). You can leave</para> - /// <para>/ all other fields uninitialized.</para> - /// <para>/ - *pcbSignedBlob contains the size of the buffer at pBlob. (It should be</para> - /// <para>/ at least k_cbMaxSteamDatagramGameCoordinatorServerLoginSerialized.)</para> - /// <para>/</para> - /// <para>/ On a successful exit:</para> - /// <para>/ - k_EResultOK is returned</para> - /// <para>/ - All of the remaining fields of pLoginInfo will be filled out.</para> - /// <para>/ - *pcbSignedBlob contains the size of the serialized blob that has been</para> - /// <para>/ placed into pBlob.</para> - /// <para>/</para> - /// <para>/ Unsuccessful exit:</para> - /// <para>/ - Something other than k_EResultOK is returned.</para> - /// <para>/ - k_EResultNotLoggedOn: you are not logged in (yet)</para> - /// <para>/ - See GetHostedDedicatedServerAddress for more potential failure return values.</para> - /// <para>/ - A non-localized diagnostic debug message will be placed in pBlob that describes</para> - /// <para>/ the cause of the failure.</para> - /// <para>/</para> - /// <para>/ This works by signing the contents of the SteamDatagramGameCoordinatorServerLogin</para> - /// <para>/ with the cert that is issued to this server. In dev environments, it's OK if you do</para> - /// <para>/ not have a cert. (You will need to enable insecure dev login in SteamDatagram_ParseHostedServerLogin.)</para> - /// <para>/ Otherwise, you will need a signed cert.</para> - /// <para>/</para> - /// <para>/ NOTE: The routing blob returned here is not encrypted. Send it to your backend</para> - /// <para>/ and don't share it directly with clients.</para> - /// </summary> - public static EResult GetGameCoordinatorServerLogin(IntPtr pLoginInfo, out int pcbSignedBlob, IntPtr pBlob) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_GetGameCoordinatorServerLogin(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), pLoginInfo, out pcbSignedBlob, pBlob); - } - - /// <summary> - /// <para> Relayed connections using custom signaling protocol</para> - /// <para> This is used if you have your own method of sending out-of-band</para> - /// <para> signaling / rendezvous messages through a mutually trusted channel.</para> - /// <para>/ Create a P2P "client" connection that does signaling over a custom</para> - /// <para>/ rendezvous/signaling channel.</para> - /// <para>/</para> - /// <para>/ pSignaling points to a new object that you create just for this connection.</para> - /// <para>/ It must stay valid until Release() is called. Once you pass the</para> - /// <para>/ object to this function, it assumes ownership. Release() will be called</para> - /// <para>/ from within the function call if the call fails. Furthermore, until Release()</para> - /// <para>/ is called, you should be prepared for methods to be invoked on your</para> - /// <para>/ object from any thread! You need to make sure your object is threadsafe!</para> - /// <para>/ Furthermore, you should make sure that dispatching the methods is done</para> - /// <para>/ as quickly as possible.</para> - /// <para>/</para> - /// <para>/ This function will immediately construct a connection in the "connecting"</para> - /// <para>/ state. Soon after (perhaps before this function returns, perhaps in another thread),</para> - /// <para>/ the connection will begin sending signaling messages by calling</para> - /// <para>/ ISteamNetworkingConnectionSignaling::SendSignal.</para> - /// <para>/</para> - /// <para>/ When the remote peer accepts the connection (See</para> - /// <para>/ ISteamNetworkingSignalingRecvContext::OnConnectRequest),</para> - /// <para>/ it will begin sending signaling messages. When these messages are received,</para> - /// <para>/ you can pass them to the connection using ReceivedP2PCustomSignal.</para> - /// <para>/</para> - /// <para>/ If you know the identity of the peer that you expect to be on the other end,</para> - /// <para>/ you can pass their identity to improve debug output or just detect bugs.</para> - /// <para>/ If you don't know their identity yet, you can pass NULL, and their</para> - /// <para>/ identity will be established in the connection handshake.</para> - /// <para>/</para> - /// <para>/ If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess()</para> - /// <para>/ when your app initializes</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// </summary> - public static HSteamNetConnection ConnectP2PCustomSignaling(out ISteamNetworkingConnectionSignaling pSignaling, ref SteamNetworkingIdentity pPeerIdentity, int nRemoteVirtualPort, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableGameServer(); - return (HSteamNetConnection)NativeMethods.ISteamNetworkingSockets_ConnectP2PCustomSignaling(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), out pSignaling, ref pPeerIdentity, nRemoteVirtualPort, nOptions, pOptions); - } - - /// <summary> - /// <para>/ Called when custom signaling has received a message. When your</para> - /// <para>/ signaling channel receives a message, it should save off whatever</para> - /// <para>/ routing information was in the envelope into the context object,</para> - /// <para>/ and then pass the payload to this function.</para> - /// <para>/</para> - /// <para>/ A few different things can happen next, depending on the message:</para> - /// <para>/</para> - /// <para>/ - If the signal is associated with existing connection, it is dealt</para> - /// <para>/ with immediately. If any replies need to be sent, they will be</para> - /// <para>/ dispatched using the ISteamNetworkingConnectionSignaling</para> - /// <para>/ associated with the connection.</para> - /// <para>/ - If the message represents a connection request (and the request</para> - /// <para>/ is not redundant for an existing connection), a new connection</para> - /// <para>/ will be created, and ReceivedConnectRequest will be called on your</para> - /// <para>/ context object to determine how to proceed.</para> - /// <para>/ - Otherwise, the message is for a connection that does not</para> - /// <para>/ exist (anymore). In this case, we *may* call SendRejectionReply</para> - /// <para>/ on your context object.</para> - /// <para>/</para> - /// <para>/ In any case, we will not save off pContext or access it after this</para> - /// <para>/ function returns.</para> - /// <para>/</para> - /// <para>/ Returns true if the message was parsed and dispatched without anything</para> - /// <para>/ unusual or suspicious happening. Returns false if there was some problem</para> - /// <para>/ with the message that prevented ordinary handling. (Debug output will</para> - /// <para>/ usually have more information.)</para> - /// <para>/</para> - /// <para>/ If you expect to be using relayed connections, then you probably want</para> - /// <para>/ to call ISteamNetworkingUtils::InitRelayNetworkAccess() when your app initializes</para> - /// </summary> - public static bool ReceivedP2PCustomSignal(IntPtr pMsg, int cbMsg, out ISteamNetworkingSignalingRecvContext pContext) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_ReceivedP2PCustomSignal(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), pMsg, cbMsg, out pContext); - } - - /// <summary> - /// <para> Certificate provision by the application. On Steam, we normally handle all this automatically</para> - /// <para> and you will not need to use these advanced functions.</para> - /// <para>/ Get blob that describes a certificate request. You can send this to your game coordinator.</para> - /// <para>/ Upon entry, *pcbBlob should contain the size of the buffer. On successful exit, it will</para> - /// <para>/ return the number of bytes that were populated. You can pass pBlob=NULL to query for the required</para> - /// <para>/ size. (512 bytes is a conservative estimate.)</para> - /// <para>/</para> - /// <para>/ Pass this blob to your game coordinator and call SteamDatagram_CreateCert.</para> - /// </summary> - public static bool GetCertificateRequest(out int pcbBlob, IntPtr pBlob, out SteamNetworkingErrMsg errMsg) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_GetCertificateRequest(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), out pcbBlob, pBlob, out errMsg); - } - - /// <summary> - /// <para>/ Set the certificate. The certificate blob should be the output of</para> - /// <para>/ SteamDatagram_CreateCert.</para> - /// </summary> - public static bool SetCertificate(IntPtr pCertificate, int cbCertificate, out SteamNetworkingErrMsg errMsg) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_SetCertificate(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), pCertificate, cbCertificate, out errMsg); - } - - /// <summary> - /// <para>/ Reset the identity associated with this instance.</para> - /// <para>/ Any open connections are closed. Any previous certificates, etc are discarded.</para> - /// <para>/ You can pass a specific identity that you want to use, or you can pass NULL,</para> - /// <para>/ in which case the identity will be invalid until you set it using SetCertificate</para> - /// <para>/</para> - /// <para>/ NOTE: This function is not actually supported on Steam! It is included</para> - /// <para>/ for use on other platforms where the active user can sign out and</para> - /// <para>/ a new user can sign in.</para> - /// </summary> - public static void ResetIdentity(ref SteamNetworkingIdentity pIdentity) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamNetworkingSockets_ResetIdentity(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), ref pIdentity); - } - - /// <summary> - /// <para> Misc</para> - /// <para>/ Invoke all callback functions queued for this interface.</para> - /// <para>/ See k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, etc</para> - /// <para>/</para> - /// <para>/ You don't need to call this if you are using Steam's callback dispatch</para> - /// <para>/ mechanism (SteamAPI_RunCallbacks and SteamGameserver_RunCallbacks).</para> - /// </summary> - public static void RunCallbacks() { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamNetworkingSockets_RunCallbacks(CSteamGameServerAPIContext.GetSteamNetworkingSockets()); - } - - /// <summary> - /// <para> "FakeIP" system.</para> - /// <para> A FakeIP is essentially a temporary, arbitrary identifier that</para> - /// <para> happens to be a valid IPv4 address. The purpose of this system is to make it</para> - /// <para> easy to integrate with existing code that identifies hosts using IPv4 addresses.</para> - /// <para> The FakeIP address will never actually be used to send or receive any packets</para> - /// <para> on the Internet, it is strictly an identifier.</para> - /// <para> FakeIP addresses are designed to (hopefully) pass through existing code as</para> - /// <para> transparently as possible, while conflicting with "real" addresses that might</para> - /// <para> be in use on networks (both the Internet and LANs) in the same code as little</para> - /// <para> as possible. At the time this comment is being written, they come from the</para> - /// <para> 169.254.0.0/16 range, and the port number will always be >1024. HOWEVER,</para> - /// <para> this is subject to change! Do not make assumptions about these addresses,</para> - /// <para> or your code might break in the future. In particular, you should use</para> - /// <para> functions such as ISteamNetworkingUtils::IsFakeIP to determine if an IP</para> - /// <para> address is a "fake" one used by this system.</para> - /// <para>/ Begin asynchronous process of allocating a fake IPv4 address that other</para> - /// <para>/ peers can use to contact us via P2P. IP addresses returned by this</para> - /// <para>/ function are globally unique for a given appid.</para> - /// <para>/</para> - /// <para>/ nNumPorts is the numbers of ports you wish to reserve. This is useful</para> - /// <para>/ for the same reason that listening on multiple UDP ports is useful for</para> - /// <para>/ different types of traffic. Because these allocations come from a global</para> - /// <para>/ namespace, there is a relatively strict limit on the maximum number of</para> - /// <para>/ ports you may request. (At the time of this writing, the limit is 4.)</para> - /// <para>/ The Port assignments are *not* guaranteed to have any particular order</para> - /// <para>/ or relationship! Do *not* assume they are contiguous, even though that</para> - /// <para>/ may often occur in practice.</para> - /// <para>/</para> - /// <para>/ Returns false if a request was already in progress, true if a new request</para> - /// <para>/ was started. A SteamNetworkingFakeIPResult_t will be posted when the request</para> - /// <para>/ completes.</para> - /// <para>/</para> - /// <para>/ For gameservers, you *must* call this after initializing the SDK but before</para> - /// <para>/ beginning login. Steam needs to know in advance that FakeIP will be used.</para> - /// <para>/ Everywhere your public IP would normally appear (such as the server browser) will be</para> - /// <para>/ replaced by the FakeIP, and the fake port at index 0. The request is actually queued</para> - /// <para>/ until the logon completes, so you must not wait until the allocation completes</para> - /// <para>/ before logging in. Except for trivial failures that can be detected locally</para> - /// <para>/ (e.g. invalid parameter), a SteamNetworkingFakeIPResult_t callback (whether success or</para> - /// <para>/ failure) will not be posted until after we have logged in. Furthermore, it is assumed</para> - /// <para>/ that FakeIP allocation is essential for your application to function, and so failure</para> - /// <para>/ will not be reported until *several* retries have been attempted. This process may</para> - /// <para>/ last several minutes. It is *highly* recommended to treat failure as fatal.</para> - /// <para>/</para> - /// <para>/ To communicate using a connection-oriented (TCP-style) API:</para> - /// <para>/ - Server creates a listen socket using CreateListenSocketP2PFakeIP</para> - /// <para>/ - Client connects using ConnectByIPAddress, passing in the FakeIP address.</para> - /// <para>/ - The connection will behave mostly like a P2P connection. The identities</para> - /// <para>/ that appear in SteamNetConnectionInfo_t will be the FakeIP identity until</para> - /// <para>/ we know the real identity. Then it will be the real identity. If the</para> - /// <para>/ SteamNetConnectionInfo_t::m_addrRemote is valid, it will be a real IPv4</para> - /// <para>/ address of a NAT-punched connection. Otherwise, it will not be valid.</para> - /// <para>/</para> - /// <para>/ To communicate using an ad-hoc sendto/recv from (UDP-style) API,</para> - /// <para>/ use CreateFakeUDPPort.</para> - /// </summary> - public static bool BeginAsyncRequestFakeIP(int nNumPorts) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_BeginAsyncRequestFakeIP(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), nNumPorts); - } - - /// <summary> - /// <para>/ Return info about the FakeIP and port(s) that we have been assigned,</para> - /// <para>/ if any. idxFirstPort is currently reserved and must be zero.</para> - /// <para>/ Make sure and check SteamNetworkingFakeIPResult_t::m_eResult</para> - /// </summary> - public static void GetFakeIP(int idxFirstPort, out SteamNetworkingFakeIPResult_t pInfo) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamNetworkingSockets_GetFakeIP(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), idxFirstPort, out pInfo); - } - - /// <summary> - /// <para>/ Create a listen socket that will listen for P2P connections sent</para> - /// <para>/ to our FakeIP. A peer can initiate connections to this listen</para> - /// <para>/ socket by calling ConnectByIPAddress.</para> - /// <para>/</para> - /// <para>/ idxFakePort refers to the *index* of the fake port requested,</para> - /// <para>/ not the actual port number. For example, pass 0 to refer to the</para> - /// <para>/ first port in the reservation. You must call this only after calling</para> - /// <para>/ BeginAsyncRequestFakeIP. However, you do not need to wait for the</para> - /// <para>/ request to complete before creating the listen socket.</para> - /// </summary> - public static HSteamListenSocket CreateListenSocketP2PFakeIP(int idxFakePort, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableGameServer(); - return (HSteamListenSocket)NativeMethods.ISteamNetworkingSockets_CreateListenSocketP2PFakeIP(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), idxFakePort, nOptions, pOptions); - } - - /// <summary> - /// <para>/ If the connection was initiated using the "FakeIP" system, then we</para> - /// <para>/ we can get an IP address for the remote host. If the remote host had</para> - /// <para>/ a global FakeIP at the time the connection was established, this</para> - /// <para>/ function will return that global IP. Otherwise, a FakeIP that is</para> - /// <para>/ unique locally will be allocated from the local FakeIP address space,</para> - /// <para>/ and that will be returned.</para> - /// <para>/</para> - /// <para>/ The allocation of local FakeIPs attempts to assign addresses in</para> - /// <para>/ a consistent manner. If multiple connections are made to the</para> - /// <para>/ same remote host, they *probably* will return the same FakeIP.</para> - /// <para>/ However, since the namespace is limited, this cannot be guaranteed.</para> - /// <para>/</para> - /// <para>/ On failure, returns:</para> - /// <para>/ - k_EResultInvalidParam: invalid connection handle</para> - /// <para>/ - k_EResultIPNotFound: This connection wasn't made using FakeIP system</para> - /// </summary> - public static EResult GetRemoteFakeIPForConnection(HSteamNetConnection hConn, out SteamNetworkingIPAddr pOutAddr) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_GetRemoteFakeIPForConnection(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), hConn, out pOutAddr); - } - - /// <summary> - /// <para>/ Get an interface that can be used like a UDP port to send/receive</para> - /// <para>/ datagrams to a FakeIP address. This is intended to make it easy</para> - /// <para>/ to port existing UDP-based code to take advantage of SDR.</para> - /// <para>/</para> - /// <para>/ idxFakeServerPort refers to the *index* of the port allocated using</para> - /// <para>/ BeginAsyncRequestFakeIP and is used to create "server" ports. You may</para> - /// <para>/ call this before the allocation has completed. However, any attempts</para> - /// <para>/ to send packets will fail until the allocation has succeeded. When</para> - /// <para>/ the peer receives packets sent from this interface, the from address</para> - /// <para>/ of the packet will be the globally-unique FakeIP. If you call this</para> - /// <para>/ function multiple times and pass the same (nonnegative) fake port index,</para> - /// <para>/ the same object will be returned, and this object is not reference counted.</para> - /// <para>/</para> - /// <para>/ To create a "client" port (e.g. the equivalent of an ephemeral UDP port)</para> - /// <para>/ pass -1. In this case, a distinct object will be returned for each call.</para> - /// <para>/ When the peer receives packets sent from this interface, the peer will</para> - /// <para>/ assign a FakeIP from its own locally-controlled namespace.</para> - /// </summary> - public static IntPtr CreateFakeUDPPort(int idxFakeServerPort) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingSockets_CreateFakeUDPPort(CSteamGameServerAPIContext.GetSteamNetworkingSockets(), idxFakeServerPort); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworkingsockets.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworkingsockets.cs.meta deleted file mode 100644 index 85d200d..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworkingsockets.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 175e632ae8fecc24e902fada780c39dc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworkingutils.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworkingutils.cs deleted file mode 100644 index 0ec90d0..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworkingutils.cs +++ /dev/null @@ -1,444 +0,0 @@ -#define STEAMNETWORKINGSOCKETS_ENABLE_SDR -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamGameServerNetworkingUtils { - /// <summary> - /// <para> Efficient message sending</para> - /// <para>/ Allocate and initialize a message object. Usually the reason</para> - /// <para>/ you call this is to pass it to ISteamNetworkingSockets::SendMessages.</para> - /// <para>/ The returned object will have all of the relevant fields cleared to zero.</para> - /// <para>/</para> - /// <para>/ Optionally you can also request that this system allocate space to</para> - /// <para>/ hold the payload itself. If cbAllocateBuffer is nonzero, the system</para> - /// <para>/ will allocate memory to hold a payload of at least cbAllocateBuffer bytes.</para> - /// <para>/ m_pData will point to the allocated buffer, m_cbSize will be set to the</para> - /// <para>/ size, and m_pfnFreeData will be set to the proper function to free up</para> - /// <para>/ the buffer.</para> - /// <para>/</para> - /// <para>/ If cbAllocateBuffer=0, then no buffer is allocated. m_pData will be NULL,</para> - /// <para>/ m_cbSize will be zero, and m_pfnFreeData will be NULL. You will need to</para> - /// <para>/ set each of these.</para> - /// </summary> - public static IntPtr AllocateMessage(int cbAllocateBuffer) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_AllocateMessage(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), cbAllocateBuffer); - } - - /// <summary> - /// <para> Access to Steam Datagram Relay (SDR) network</para> - /// <para> Initialization and status check</para> - /// <para>/ If you know that you are going to be using the relay network (for example,</para> - /// <para>/ because you anticipate making P2P connections), call this to initialize the</para> - /// <para>/ relay network. If you do not call this, the initialization will</para> - /// <para>/ be delayed until the first time you use a feature that requires access</para> - /// <para>/ to the relay network, which will delay that first access.</para> - /// <para>/</para> - /// <para>/ You can also call this to force a retry if the previous attempt has failed.</para> - /// <para>/ Performing any action that requires access to the relay network will also</para> - /// <para>/ trigger a retry, and so calling this function is never strictly necessary,</para> - /// <para>/ but it can be useful to call it a program launch time, if access to the</para> - /// <para>/ relay network is anticipated.</para> - /// <para>/</para> - /// <para>/ Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t</para> - /// <para>/ callbacks to know when initialization has completed.</para> - /// <para>/ Typically initialization completes in a few seconds.</para> - /// <para>/</para> - /// <para>/ Note: dedicated servers hosted in known data centers do *not* need</para> - /// <para>/ to call this, since they do not make routing decisions. However, if</para> - /// <para>/ the dedicated server will be using P2P functionality, it will act as</para> - /// <para>/ a "client" and this should be called.</para> - /// </summary> - public static void InitRelayNetworkAccess() { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamNetworkingUtils_InitRelayNetworkAccess(CSteamGameServerAPIContext.GetSteamNetworkingUtils()); - } - - /// <summary> - /// <para>/ Fetch current status of the relay network.</para> - /// <para>/</para> - /// <para>/ SteamRelayNetworkStatus_t is also a callback. It will be triggered on</para> - /// <para>/ both the user and gameserver interfaces any time the status changes, or</para> - /// <para>/ ping measurement starts or stops.</para> - /// <para>/</para> - /// <para>/ SteamRelayNetworkStatus_t::m_eAvail is returned. If you want</para> - /// <para>/ more details, you can pass a non-NULL value.</para> - /// </summary> - public static ESteamNetworkingAvailability GetRelayNetworkStatus(out SteamRelayNetworkStatus_t pDetails) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_GetRelayNetworkStatus(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), out pDetails); - } - - /// <summary> - /// <para> "Ping location" functions</para> - /// <para> We use the ping times to the valve relays deployed worldwide to</para> - /// <para> generate a "marker" that describes the location of an Internet host.</para> - /// <para> Given two such markers, we can estimate the network latency between</para> - /// <para> two hosts, without sending any packets. The estimate is based on the</para> - /// <para> optimal route that is found through the Valve network. If you are</para> - /// <para> using the Valve network to carry the traffic, then this is precisely</para> - /// <para> the ping you want. If you are not, then the ping time will probably</para> - /// <para> still be a reasonable estimate.</para> - /// <para> This is extremely useful to select peers for matchmaking!</para> - /// <para> The markers can also be converted to a string, so they can be transmitted.</para> - /// <para> We have a separate library you can use on your app's matchmaking/coordinating</para> - /// <para> server to manipulate these objects. (See steamdatagram_gamecoordinator.h)</para> - /// <para>/ Return location info for the current host. Returns the approximate</para> - /// <para>/ age of the data, in seconds, or -1 if no data is available.</para> - /// <para>/</para> - /// <para>/ It takes a few seconds to initialize access to the relay network. If</para> - /// <para>/ you call this very soon after calling InitRelayNetworkAccess,</para> - /// <para>/ the data may not be available yet.</para> - /// <para>/</para> - /// <para>/ This always return the most up-to-date information we have available</para> - /// <para>/ right now, even if we are in the middle of re-calculating ping times.</para> - /// </summary> - public static float GetLocalPingLocation(out SteamNetworkPingLocation_t result) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_GetLocalPingLocation(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), out result); - } - - /// <summary> - /// <para>/ Estimate the round-trip latency between two arbitrary locations, in</para> - /// <para>/ milliseconds. This is a conservative estimate, based on routing through</para> - /// <para>/ the relay network. For most basic relayed connections, this ping time</para> - /// <para>/ will be pretty accurate, since it will be based on the route likely to</para> - /// <para>/ be actually used.</para> - /// <para>/</para> - /// <para>/ If a direct IP route is used (perhaps via NAT traversal), then the route</para> - /// <para>/ will be different, and the ping time might be better. Or it might actually</para> - /// <para>/ be a bit worse! Standard IP routing is frequently suboptimal!</para> - /// <para>/</para> - /// <para>/ But even in this case, the estimate obtained using this method is a</para> - /// <para>/ reasonable upper bound on the ping time. (Also it has the advantage</para> - /// <para>/ of returning immediately and not sending any packets.)</para> - /// <para>/</para> - /// <para>/ In a few cases we might not able to estimate the route. In this case</para> - /// <para>/ a negative value is returned. k_nSteamNetworkingPing_Failed means</para> - /// <para>/ the reason was because of some networking difficulty. (Failure to</para> - /// <para>/ ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot</para> - /// <para>/ currently answer the question for some other reason.</para> - /// <para>/</para> - /// <para>/ Do you need to be able to do this from a backend/matchmaking server?</para> - /// <para>/ You are looking for the "game coordinator" library.</para> - /// </summary> - public static int EstimatePingTimeBetweenTwoLocations(ref SteamNetworkPingLocation_t location1, ref SteamNetworkPingLocation_t location2) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_EstimatePingTimeBetweenTwoLocations(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), ref location1, ref location2); - } - - /// <summary> - /// <para>/ Same as EstimatePingTime, but assumes that one location is the local host.</para> - /// <para>/ This is a bit faster, especially if you need to calculate a bunch of</para> - /// <para>/ these in a loop to find the fastest one.</para> - /// <para>/</para> - /// <para>/ In rare cases this might return a slightly different estimate than combining</para> - /// <para>/ GetLocalPingLocation with EstimatePingTimeBetweenTwoLocations. That's because</para> - /// <para>/ this function uses a slightly more complete set of information about what</para> - /// <para>/ route would be taken.</para> - /// </summary> - public static int EstimatePingTimeFromLocalHost(ref SteamNetworkPingLocation_t remoteLocation) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_EstimatePingTimeFromLocalHost(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), ref remoteLocation); - } - - /// <summary> - /// <para>/ Convert a ping location into a text format suitable for sending over the wire.</para> - /// <para>/ The format is a compact and human readable. However, it is subject to change</para> - /// <para>/ so please do not parse it yourself. Your buffer must be at least</para> - /// <para>/ k_cchMaxSteamNetworkingPingLocationString bytes.</para> - /// </summary> - public static void ConvertPingLocationToString(ref SteamNetworkPingLocation_t location, out string pszBuf, int cchBufSize) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pszBuf2 = Marshal.AllocHGlobal(cchBufSize); - NativeMethods.ISteamNetworkingUtils_ConvertPingLocationToString(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), ref location, pszBuf2, cchBufSize); - pszBuf = InteropHelp.PtrToStringUTF8(pszBuf2); - Marshal.FreeHGlobal(pszBuf2); - } - - /// <summary> - /// <para>/ Parse back SteamNetworkPingLocation_t string. Returns false if we couldn't understand</para> - /// <para>/ the string.</para> - /// </summary> - public static bool ParsePingLocationString(string pszString, out SteamNetworkPingLocation_t result) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszString2 = new InteropHelp.UTF8StringHandle(pszString)) { - return NativeMethods.ISteamNetworkingUtils_ParsePingLocationString(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), pszString2, out result); - } - } - - /// <summary> - /// <para>/ Check if the ping data of sufficient recency is available, and if</para> - /// <para>/ it's too old, start refreshing it.</para> - /// <para>/</para> - /// <para>/ Please only call this function when you *really* do need to force an</para> - /// <para>/ immediate refresh of the data. (For example, in response to a specific</para> - /// <para>/ user input to refresh this information.) Don't call it "just in case",</para> - /// <para>/ before every connection, etc. That will cause extra traffic to be sent</para> - /// <para>/ for no benefit. The library will automatically refresh the information</para> - /// <para>/ as needed.</para> - /// <para>/</para> - /// <para>/ Returns true if sufficiently recent data is already available.</para> - /// <para>/</para> - /// <para>/ Returns false if sufficiently recent data is not available. In this</para> - /// <para>/ case, ping measurement is initiated, if it is not already active.</para> - /// <para>/ (You cannot restart a measurement already in progress.)</para> - /// <para>/</para> - /// <para>/ You can use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t</para> - /// <para>/ to know when ping measurement completes.</para> - /// </summary> - public static bool CheckPingDataUpToDate(float flMaxAgeSeconds) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_CheckPingDataUpToDate(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), flMaxAgeSeconds); - } - - /// <summary> - /// <para> List of Valve data centers, and ping times to them. This might</para> - /// <para> be useful to you if you are use our hosting, or just need to measure</para> - /// <para> latency to a cloud data center where we are running relays.</para> - /// <para>/ Fetch ping time of best available relayed route from this host to</para> - /// <para>/ the specified data center.</para> - /// </summary> - public static int GetPingToDataCenter(SteamNetworkingPOPID popID, out SteamNetworkingPOPID pViaRelayPoP) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_GetPingToDataCenter(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), popID, out pViaRelayPoP); - } - - /// <summary> - /// <para>/ Get *direct* ping time to the relays at the data center.</para> - /// </summary> - public static int GetDirectPingToPOP(SteamNetworkingPOPID popID) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_GetDirectPingToPOP(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), popID); - } - - /// <summary> - /// <para>/ Get number of network points of presence in the config</para> - /// </summary> - public static int GetPOPCount() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_GetPOPCount(CSteamGameServerAPIContext.GetSteamNetworkingUtils()); - } - - /// <summary> - /// <para>/ Get list of all POP IDs. Returns the number of entries that were filled into</para> - /// <para>/ your list.</para> - /// </summary> - public static int GetPOPList(out SteamNetworkingPOPID list, int nListSz) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_GetPOPList(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), out list, nListSz); - } - - /// <summary> - /// <para> Misc</para> - /// <para>/ Fetch current timestamp. This timer has the following properties:</para> - /// <para>/</para> - /// <para>/ - Monotonicity is guaranteed.</para> - /// <para>/ - The initial value will be at least 24*3600*30*1e6, i.e. about</para> - /// <para>/ 30 days worth of microseconds. In this way, the timestamp value of</para> - /// <para>/ 0 will always be at least "30 days ago". Also, negative numbers</para> - /// <para>/ will never be returned.</para> - /// <para>/ - Wraparound / overflow is not a practical concern.</para> - /// <para>/</para> - /// <para>/ If you are running under the debugger and stop the process, the clock</para> - /// <para>/ might not advance the full wall clock time that has elapsed between</para> - /// <para>/ calls. If the process is not blocked from normal operation, the</para> - /// <para>/ timestamp values will track wall clock time, even if you don't call</para> - /// <para>/ the function frequently.</para> - /// <para>/</para> - /// <para>/ The value is only meaningful for this run of the process. Don't compare</para> - /// <para>/ it to values obtained on another computer, or other runs of the same process.</para> - /// </summary> - public static SteamNetworkingMicroseconds GetLocalTimestamp() { - InteropHelp.TestIfAvailableGameServer(); - return (SteamNetworkingMicroseconds)NativeMethods.ISteamNetworkingUtils_GetLocalTimestamp(CSteamGameServerAPIContext.GetSteamNetworkingUtils()); - } - - /// <summary> - /// <para>/ Set a function to receive network-related information that is useful for debugging.</para> - /// <para>/ This can be very useful during development, but it can also be useful for troubleshooting</para> - /// <para>/ problems with tech savvy end users. If you have a console or other log that customers</para> - /// <para>/ can examine, these log messages can often be helpful to troubleshoot network issues.</para> - /// <para>/ (Especially any warning/error messages.)</para> - /// <para>/</para> - /// <para>/ The detail level indicates what message to invoke your callback on. Lower numeric</para> - /// <para>/ value means more important, and the value you pass is the lowest priority (highest</para> - /// <para>/ numeric value) you wish to receive callbacks for.</para> - /// <para>/</para> - /// <para>/ The value here controls the detail level for most messages. You can control the</para> - /// <para>/ detail level for various subsystems (perhaps only for certain connections) by</para> - /// <para>/ adjusting the configuration values k_ESteamNetworkingConfig_LogLevel_Xxxxx.</para> - /// <para>/</para> - /// <para>/ Except when debugging, you should only use k_ESteamNetworkingSocketsDebugOutputType_Msg</para> - /// <para>/ or k_ESteamNetworkingSocketsDebugOutputType_Warning. For best performance, do NOT</para> - /// <para>/ request a high detail level and then filter out messages in your callback. This incurs</para> - /// <para>/ all of the expense of formatting the messages, which are then discarded. Setting a high</para> - /// <para>/ priority value (low numeric value) here allows the library to avoid doing this work.</para> - /// <para>/</para> - /// <para>/ IMPORTANT: This may be called from a service thread, while we own a mutex, etc.</para> - /// <para>/ Your output function must be threadsafe and fast! Do not make any other</para> - /// <para>/ Steamworks calls from within the handler.</para> - /// </summary> - public static void SetDebugOutputFunction(ESteamNetworkingSocketsDebugOutputType eDetailLevel, FSteamNetworkingSocketsDebugOutput pfnFunc) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamNetworkingUtils_SetDebugOutputFunction(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), eDetailLevel, pfnFunc); - } - - /// <summary> - /// <para> Fake IP</para> - /// <para> Useful for interfacing with code that assumes peers are identified using an IPv4 address</para> - /// <para>/ Return true if an IPv4 address is one that might be used as a "fake" one.</para> - /// <para>/ This function is fast; it just does some logical tests on the IP and does</para> - /// <para>/ not need to do any lookup operations.</para> - /// </summary> - public static bool IsFakeIPv4(uint nIPv4) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_IsFakeIPv4(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), nIPv4); - } - - public static ESteamNetworkingFakeIPType GetIPv4FakeIPType(uint nIPv4) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_GetIPv4FakeIPType(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), nIPv4); - } - - /// <summary> - /// <para>/ Get the real identity associated with a given FakeIP.</para> - /// <para>/</para> - /// <para>/ On failure, returns:</para> - /// <para>/ - k_EResultInvalidParam: the IP is not a FakeIP.</para> - /// <para>/ - k_EResultNoMatch: we don't recognize that FakeIP and don't know the corresponding identity.</para> - /// <para>/</para> - /// <para>/ FakeIP's used by active connections, or the FakeIPs assigned to local identities,</para> - /// <para>/ will always work. FakeIPs for recently destroyed connections will continue to</para> - /// <para>/ return results for a little while, but not forever. At some point, we will forget</para> - /// <para>/ FakeIPs to save space. It's reasonably safe to assume that you can read back the</para> - /// <para>/ real identity of a connection very soon after it is destroyed. But do not wait</para> - /// <para>/ indefinitely.</para> - /// </summary> - public static EResult GetRealIdentityForFakeIP(ref SteamNetworkingIPAddr fakeIP, out SteamNetworkingIdentity pOutRealIdentity) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_GetRealIdentityForFakeIP(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), ref fakeIP, out pOutRealIdentity); - } - - /// <summary> - /// <para> Set and get configuration values, see ESteamNetworkingConfigValue for individual descriptions.</para> - /// <para> Shortcuts for common cases. (Implemented as inline functions below)</para> - /// <para> Set global callbacks. If you do not want to use Steam's callback dispatch mechanism and you</para> - /// <para> want to use the same callback on all (or most) listen sockets and connections, then</para> - /// <para> simply install these callbacks first thing, and you are good to go.</para> - /// <para> See ISteamNetworkingSockets::RunCallbacks</para> - /// <para>/ Set a configuration value.</para> - /// <para>/ - eValue: which value is being set</para> - /// <para>/ - eScope: Onto what type of object are you applying the setting?</para> - /// <para>/ - scopeArg: Which object you want to change? (Ignored for global scope). E.g. connection handle, listen socket handle, interface pointer, etc.</para> - /// <para>/ - eDataType: What type of data is in the buffer at pValue? This must match the type of the variable exactly!</para> - /// <para>/ - pArg: Value to set it to. You can pass NULL to remove a non-global setting at this scope,</para> - /// <para>/ causing the value for that object to use global defaults. Or at global scope, passing NULL</para> - /// <para>/ will reset any custom value and restore it to the system default.</para> - /// <para>/ NOTE: When setting pointers (e.g. callback functions), do not pass the function pointer directly.</para> - /// <para>/ Your argument should be a pointer to a function pointer.</para> - /// </summary> - public static bool SetConfigValue(ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, IntPtr scopeObj, ESteamNetworkingConfigDataType eDataType, IntPtr pArg) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_SetConfigValue(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), eValue, eScopeType, scopeObj, eDataType, pArg); - } - - /// <summary> - /// <para>/ Set a configuration value, using a struct to pass the value.</para> - /// <para>/ (This is just a convenience shortcut; see below for the implementation and</para> - /// <para>/ a little insight into how SteamNetworkingConfigValue_t is used when</para> - /// <para>/ setting config options during listen socket and connection creation.)</para> - /// <para>/ Get a configuration value.</para> - /// <para>/ - eValue: which value to fetch</para> - /// <para>/ - eScopeType: query setting on what type of object</para> - /// <para>/ - eScopeArg: the object to query the setting for</para> - /// <para>/ - pOutDataType: If non-NULL, the data type of the value is returned.</para> - /// <para>/ - pResult: Where to put the result. Pass NULL to query the required buffer size. (k_ESteamNetworkingGetConfigValue_BufferTooSmall will be returned.)</para> - /// <para>/ - cbResult: IN: the size of your buffer. OUT: the number of bytes filled in or required.</para> - /// </summary> - public static ESteamNetworkingGetConfigValueResult GetConfigValue(ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, IntPtr scopeObj, out ESteamNetworkingConfigDataType pOutDataType, IntPtr pResult, ref ulong cbResult) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_GetConfigValue(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), eValue, eScopeType, scopeObj, out pOutDataType, pResult, ref cbResult); - } - - /// <summary> - /// <para>/ Get info about a configuration value. Returns the name of the value,</para> - /// <para>/ or NULL if the value doesn't exist. Other output parameters can be NULL</para> - /// <para>/ if you do not need them.</para> - /// </summary> - public static string GetConfigValueInfo(ESteamNetworkingConfigValue eValue, out ESteamNetworkingConfigDataType pOutDataType, out ESteamNetworkingConfigScope pOutScope) { - InteropHelp.TestIfAvailableGameServer(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamNetworkingUtils_GetConfigValueInfo(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), eValue, out pOutDataType, out pOutScope)); - } - - /// <summary> - /// <para>/ Iterate the list of all configuration values in the current environment that it might</para> - /// <para>/ be possible to display or edit using a generic UI. To get the first iterable value,</para> - /// <para>/ pass k_ESteamNetworkingConfig_Invalid. Returns k_ESteamNetworkingConfig_Invalid</para> - /// <para>/ to signal end of list.</para> - /// <para>/</para> - /// <para>/ The bEnumerateDevVars argument can be used to include "dev" vars. These are vars that</para> - /// <para>/ are recommended to only be editable in "debug" or "dev" mode and typically should not be</para> - /// <para>/ shown in a retail environment where a malicious local user might use this to cheat.</para> - /// </summary> - public static ESteamNetworkingConfigValue IterateGenericEditableConfigValues(ESteamNetworkingConfigValue eCurrent, bool bEnumerateDevVars) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_IterateGenericEditableConfigValues(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), eCurrent, bEnumerateDevVars); - } - - /// <summary> - /// <para> String conversions. You'll usually access these using the respective</para> - /// <para> inline methods.</para> - /// </summary> - public static void SteamNetworkingIPAddr_ToString(ref SteamNetworkingIPAddr addr, out string buf, uint cbBuf, bool bWithPort) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr buf2 = Marshal.AllocHGlobal((int)cbBuf); - NativeMethods.ISteamNetworkingUtils_SteamNetworkingIPAddr_ToString(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), ref addr, buf2, cbBuf, bWithPort); - buf = InteropHelp.PtrToStringUTF8(buf2); - Marshal.FreeHGlobal(buf2); - } - - public static bool SteamNetworkingIPAddr_ParseString(out SteamNetworkingIPAddr pAddr, string pszStr) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszStr2 = new InteropHelp.UTF8StringHandle(pszStr)) { - return NativeMethods.ISteamNetworkingUtils_SteamNetworkingIPAddr_ParseString(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), out pAddr, pszStr2); - } - } - - public static ESteamNetworkingFakeIPType SteamNetworkingIPAddr_GetFakeIPType(ref SteamNetworkingIPAddr addr) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamNetworkingUtils_SteamNetworkingIPAddr_GetFakeIPType(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), ref addr); - } - - public static void SteamNetworkingIdentity_ToString(ref SteamNetworkingIdentity identity, out string buf, uint cbBuf) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr buf2 = Marshal.AllocHGlobal((int)cbBuf); - NativeMethods.ISteamNetworkingUtils_SteamNetworkingIdentity_ToString(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), ref identity, buf2, cbBuf); - buf = InteropHelp.PtrToStringUTF8(buf2); - Marshal.FreeHGlobal(buf2); - } - - public static bool SteamNetworkingIdentity_ParseString(out SteamNetworkingIdentity pIdentity, string pszStr) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszStr2 = new InteropHelp.UTF8StringHandle(pszStr)) { - return NativeMethods.ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString(CSteamGameServerAPIContext.GetSteamNetworkingUtils(), out pIdentity, pszStr2); - } - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworkingutils.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworkingutils.cs.meta deleted file mode 100644 index 9235e03..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameservernetworkingutils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fe59eea1e63d61e439d63c8e54f5cfdf -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverstats.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverstats.cs deleted file mode 100644 index 9899f72..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverstats.cs +++ /dev/null @@ -1,110 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamGameServerStats { - /// <summary> - /// <para> downloads stats for the user</para> - /// <para> returns a GSStatsReceived_t callback when completed</para> - /// <para> if the user has no stats, GSStatsReceived_t.m_eResult will be set to k_EResultFail</para> - /// <para> these stats will only be auto-updated for clients playing on the server. For other</para> - /// <para> users you'll need to call RequestUserStats() again to refresh any data</para> - /// </summary> - public static SteamAPICall_t RequestUserStats(CSteamID steamIDUser) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamGameServerStats_RequestUserStats(CSteamGameServerAPIContext.GetSteamGameServerStats(), steamIDUser); - } - - /// <summary> - /// <para> requests stat information for a user, usable after a successful call to RequestUserStats()</para> - /// </summary> - public static bool GetUserStat(CSteamID steamIDUser, string pchName, out int pData) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamGameServerStats_GetUserStatInt32(CSteamGameServerAPIContext.GetSteamGameServerStats(), steamIDUser, pchName2, out pData); - } - } - - public static bool GetUserStat(CSteamID steamIDUser, string pchName, out float pData) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamGameServerStats_GetUserStatFloat(CSteamGameServerAPIContext.GetSteamGameServerStats(), steamIDUser, pchName2, out pData); - } - } - - public static bool GetUserAchievement(CSteamID steamIDUser, string pchName, out bool pbAchieved) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamGameServerStats_GetUserAchievement(CSteamGameServerAPIContext.GetSteamGameServerStats(), steamIDUser, pchName2, out pbAchieved); - } - } - - /// <summary> - /// <para> Set / update stats and achievements.</para> - /// <para> Note: These updates will work only on stats game servers are allowed to edit and only for</para> - /// <para> game servers that have been declared as officially controlled by the game creators.</para> - /// <para> Set the IP range of your official servers on the Steamworks page</para> - /// </summary> - public static bool SetUserStat(CSteamID steamIDUser, string pchName, int nData) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamGameServerStats_SetUserStatInt32(CSteamGameServerAPIContext.GetSteamGameServerStats(), steamIDUser, pchName2, nData); - } - } - - public static bool SetUserStat(CSteamID steamIDUser, string pchName, float fData) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamGameServerStats_SetUserStatFloat(CSteamGameServerAPIContext.GetSteamGameServerStats(), steamIDUser, pchName2, fData); - } - } - - public static bool UpdateUserAvgRateStat(CSteamID steamIDUser, string pchName, float flCountThisSession, double dSessionLength) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamGameServerStats_UpdateUserAvgRateStat(CSteamGameServerAPIContext.GetSteamGameServerStats(), steamIDUser, pchName2, flCountThisSession, dSessionLength); - } - } - - public static bool SetUserAchievement(CSteamID steamIDUser, string pchName) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamGameServerStats_SetUserAchievement(CSteamGameServerAPIContext.GetSteamGameServerStats(), steamIDUser, pchName2); - } - } - - public static bool ClearUserAchievement(CSteamID steamIDUser, string pchName) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamGameServerStats_ClearUserAchievement(CSteamGameServerAPIContext.GetSteamGameServerStats(), steamIDUser, pchName2); - } - } - - /// <summary> - /// <para> Store the current data on the server, will get a GSStatsStored_t callback when set.</para> - /// <para> If the callback has a result of k_EResultInvalidParam, one or more stats</para> - /// <para> uploaded has been rejected, either because they broke constraints</para> - /// <para> or were out of date. In this case the server sends back updated values.</para> - /// <para> The stats should be re-iterated to keep in sync.</para> - /// </summary> - public static SteamAPICall_t StoreUserStats(CSteamID steamIDUser) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamGameServerStats_StoreUserStats(CSteamGameServerAPIContext.GetSteamGameServerStats(), steamIDUser); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverstats.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverstats.cs.meta deleted file mode 100644 index 48bd888..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverstats.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 07e74d4ac4bacfc489a00ec4e2a049a3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverugc.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverugc.cs deleted file mode 100644 index 5f6a098..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverugc.cs +++ /dev/null @@ -1,709 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamGameServerUGC { - /// <summary> - /// <para> Query UGC associated with a user. Creator app id or consumer app id must be valid and be set to the current running app. unPage should start at 1.</para> - /// </summary> - public static UGCQueryHandle_t CreateQueryUserUGCRequest(AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint unPage) { - InteropHelp.TestIfAvailableGameServer(); - return (UGCQueryHandle_t)NativeMethods.ISteamUGC_CreateQueryUserUGCRequest(CSteamGameServerAPIContext.GetSteamUGC(), unAccountID, eListType, eMatchingUGCType, eSortOrder, nCreatorAppID, nConsumerAppID, unPage); - } - - /// <summary> - /// <para> Query for all matching UGC. Creator app id or consumer app id must be valid and be set to the current running app. unPage should start at 1.</para> - /// </summary> - public static UGCQueryHandle_t CreateQueryAllUGCRequest(EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint unPage) { - InteropHelp.TestIfAvailableGameServer(); - return (UGCQueryHandle_t)NativeMethods.ISteamUGC_CreateQueryAllUGCRequestPage(CSteamGameServerAPIContext.GetSteamUGC(), eQueryType, eMatchingeMatchingUGCTypeFileType, nCreatorAppID, nConsumerAppID, unPage); - } - - /// <summary> - /// <para> Query for all matching UGC using the new deep paging interface. Creator app id or consumer app id must be valid and be set to the current running app. pchCursor should be set to NULL or "*" to get the first result set.</para> - /// </summary> - public static UGCQueryHandle_t CreateQueryAllUGCRequest(EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, string pchCursor = null) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchCursor2 = new InteropHelp.UTF8StringHandle(pchCursor)) { - return (UGCQueryHandle_t)NativeMethods.ISteamUGC_CreateQueryAllUGCRequestCursor(CSteamGameServerAPIContext.GetSteamUGC(), eQueryType, eMatchingeMatchingUGCTypeFileType, nCreatorAppID, nConsumerAppID, pchCursor2); - } - } - - /// <summary> - /// <para> Query for the details of the given published file ids (the RequestUGCDetails call is deprecated and replaced with this)</para> - /// </summary> - public static UGCQueryHandle_t CreateQueryUGCDetailsRequest(PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs) { - InteropHelp.TestIfAvailableGameServer(); - return (UGCQueryHandle_t)NativeMethods.ISteamUGC_CreateQueryUGCDetailsRequest(CSteamGameServerAPIContext.GetSteamUGC(), pvecPublishedFileID, unNumPublishedFileIDs); - } - - /// <summary> - /// <para> Send the query to Steam</para> - /// </summary> - public static SteamAPICall_t SendQueryUGCRequest(UGCQueryHandle_t handle) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_SendQueryUGCRequest(CSteamGameServerAPIContext.GetSteamUGC(), handle); - } - - /// <summary> - /// <para> Retrieve an individual result after receiving the callback for querying UGC</para> - /// </summary> - public static bool GetQueryUGCResult(UGCQueryHandle_t handle, uint index, out SteamUGCDetails_t pDetails) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_GetQueryUGCResult(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, out pDetails); - } - - public static uint GetQueryUGCNumTags(UGCQueryHandle_t handle, uint index) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_GetQueryUGCNumTags(CSteamGameServerAPIContext.GetSteamUGC(), handle, index); - } - - public static bool GetQueryUGCTag(UGCQueryHandle_t handle, uint index, uint indexTag, out string pchValue, uint cchValueSize) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pchValue2 = Marshal.AllocHGlobal((int)cchValueSize); - bool ret = NativeMethods.ISteamUGC_GetQueryUGCTag(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, indexTag, pchValue2, cchValueSize); - pchValue = ret ? InteropHelp.PtrToStringUTF8(pchValue2) : null; - Marshal.FreeHGlobal(pchValue2); - return ret; - } - - public static bool GetQueryUGCTagDisplayName(UGCQueryHandle_t handle, uint index, uint indexTag, out string pchValue, uint cchValueSize) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pchValue2 = Marshal.AllocHGlobal((int)cchValueSize); - bool ret = NativeMethods.ISteamUGC_GetQueryUGCTagDisplayName(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, indexTag, pchValue2, cchValueSize); - pchValue = ret ? InteropHelp.PtrToStringUTF8(pchValue2) : null; - Marshal.FreeHGlobal(pchValue2); - return ret; - } - - public static bool GetQueryUGCPreviewURL(UGCQueryHandle_t handle, uint index, out string pchURL, uint cchURLSize) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pchURL2 = Marshal.AllocHGlobal((int)cchURLSize); - bool ret = NativeMethods.ISteamUGC_GetQueryUGCPreviewURL(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, pchURL2, cchURLSize); - pchURL = ret ? InteropHelp.PtrToStringUTF8(pchURL2) : null; - Marshal.FreeHGlobal(pchURL2); - return ret; - } - - public static bool GetQueryUGCMetadata(UGCQueryHandle_t handle, uint index, out string pchMetadata, uint cchMetadatasize) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pchMetadata2 = Marshal.AllocHGlobal((int)cchMetadatasize); - bool ret = NativeMethods.ISteamUGC_GetQueryUGCMetadata(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, pchMetadata2, cchMetadatasize); - pchMetadata = ret ? InteropHelp.PtrToStringUTF8(pchMetadata2) : null; - Marshal.FreeHGlobal(pchMetadata2); - return ret; - } - - public static bool GetQueryUGCChildren(UGCQueryHandle_t handle, uint index, PublishedFileId_t[] pvecPublishedFileID, uint cMaxEntries) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_GetQueryUGCChildren(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, pvecPublishedFileID, cMaxEntries); - } - - public static bool GetQueryUGCStatistic(UGCQueryHandle_t handle, uint index, EItemStatistic eStatType, out ulong pStatValue) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_GetQueryUGCStatistic(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, eStatType, out pStatValue); - } - - public static uint GetQueryUGCNumAdditionalPreviews(UGCQueryHandle_t handle, uint index) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_GetQueryUGCNumAdditionalPreviews(CSteamGameServerAPIContext.GetSteamUGC(), handle, index); - } - - public static bool GetQueryUGCAdditionalPreview(UGCQueryHandle_t handle, uint index, uint previewIndex, out string pchURLOrVideoID, uint cchURLSize, out string pchOriginalFileName, uint cchOriginalFileNameSize, out EItemPreviewType pPreviewType) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pchURLOrVideoID2 = Marshal.AllocHGlobal((int)cchURLSize); - IntPtr pchOriginalFileName2 = Marshal.AllocHGlobal((int)cchOriginalFileNameSize); - bool ret = NativeMethods.ISteamUGC_GetQueryUGCAdditionalPreview(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, previewIndex, pchURLOrVideoID2, cchURLSize, pchOriginalFileName2, cchOriginalFileNameSize, out pPreviewType); - pchURLOrVideoID = ret ? InteropHelp.PtrToStringUTF8(pchURLOrVideoID2) : null; - Marshal.FreeHGlobal(pchURLOrVideoID2); - pchOriginalFileName = ret ? InteropHelp.PtrToStringUTF8(pchOriginalFileName2) : null; - Marshal.FreeHGlobal(pchOriginalFileName2); - return ret; - } - - public static uint GetQueryUGCNumKeyValueTags(UGCQueryHandle_t handle, uint index) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_GetQueryUGCNumKeyValueTags(CSteamGameServerAPIContext.GetSteamUGC(), handle, index); - } - - public static bool GetQueryUGCKeyValueTag(UGCQueryHandle_t handle, uint index, uint keyValueTagIndex, out string pchKey, uint cchKeySize, out string pchValue, uint cchValueSize) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pchKey2 = Marshal.AllocHGlobal((int)cchKeySize); - IntPtr pchValue2 = Marshal.AllocHGlobal((int)cchValueSize); - bool ret = NativeMethods.ISteamUGC_GetQueryUGCKeyValueTag(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, keyValueTagIndex, pchKey2, cchKeySize, pchValue2, cchValueSize); - pchKey = ret ? InteropHelp.PtrToStringUTF8(pchKey2) : null; - Marshal.FreeHGlobal(pchKey2); - pchValue = ret ? InteropHelp.PtrToStringUTF8(pchValue2) : null; - Marshal.FreeHGlobal(pchValue2); - return ret; - } - - /// <summary> - /// <para> Return the first value matching the pchKey. Note that a key may map to multiple values. Returns false if there was an error or no matching value was found.</para> - /// </summary> - public static bool GetQueryUGCKeyValueTag(UGCQueryHandle_t handle, uint index, string pchKey, out string pchValue, uint cchValueSize) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pchValue2 = Marshal.AllocHGlobal((int)cchValueSize); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) { - bool ret = NativeMethods.ISteamUGC_GetQueryFirstUGCKeyValueTag(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, pchKey2, pchValue2, cchValueSize); - pchValue = ret ? InteropHelp.PtrToStringUTF8(pchValue2) : null; - Marshal.FreeHGlobal(pchValue2); - return ret; - } - } - - public static uint GetQueryUGCContentDescriptors(UGCQueryHandle_t handle, uint index, out EUGCContentDescriptorID pvecDescriptors, uint cMaxEntries) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_GetQueryUGCContentDescriptors(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, out pvecDescriptors, cMaxEntries); - } - - /// <summary> - /// <para> Release the request to free up memory, after retrieving results</para> - /// </summary> - public static bool ReleaseQueryUGCRequest(UGCQueryHandle_t handle) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_ReleaseQueryUGCRequest(CSteamGameServerAPIContext.GetSteamUGC(), handle); - } - - /// <summary> - /// <para> Options to set for querying UGC</para> - /// </summary> - public static bool AddRequiredTag(UGCQueryHandle_t handle, string pTagName) { - InteropHelp.TestIfAvailableGameServer(); - using (var pTagName2 = new InteropHelp.UTF8StringHandle(pTagName)) { - return NativeMethods.ISteamUGC_AddRequiredTag(CSteamGameServerAPIContext.GetSteamUGC(), handle, pTagName2); - } - } - - /// <summary> - /// <para> match any of the tags in this group</para> - /// </summary> - public static bool AddRequiredTagGroup(UGCQueryHandle_t handle, System.Collections.Generic.IList<string> pTagGroups) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_AddRequiredTagGroup(CSteamGameServerAPIContext.GetSteamUGC(), handle, new InteropHelp.SteamParamStringArray(pTagGroups)); - } - - public static bool AddExcludedTag(UGCQueryHandle_t handle, string pTagName) { - InteropHelp.TestIfAvailableGameServer(); - using (var pTagName2 = new InteropHelp.UTF8StringHandle(pTagName)) { - return NativeMethods.ISteamUGC_AddExcludedTag(CSteamGameServerAPIContext.GetSteamUGC(), handle, pTagName2); - } - } - - public static bool SetReturnOnlyIDs(UGCQueryHandle_t handle, bool bReturnOnlyIDs) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetReturnOnlyIDs(CSteamGameServerAPIContext.GetSteamUGC(), handle, bReturnOnlyIDs); - } - - public static bool SetReturnKeyValueTags(UGCQueryHandle_t handle, bool bReturnKeyValueTags) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetReturnKeyValueTags(CSteamGameServerAPIContext.GetSteamUGC(), handle, bReturnKeyValueTags); - } - - public static bool SetReturnLongDescription(UGCQueryHandle_t handle, bool bReturnLongDescription) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetReturnLongDescription(CSteamGameServerAPIContext.GetSteamUGC(), handle, bReturnLongDescription); - } - - public static bool SetReturnMetadata(UGCQueryHandle_t handle, bool bReturnMetadata) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetReturnMetadata(CSteamGameServerAPIContext.GetSteamUGC(), handle, bReturnMetadata); - } - - public static bool SetReturnChildren(UGCQueryHandle_t handle, bool bReturnChildren) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetReturnChildren(CSteamGameServerAPIContext.GetSteamUGC(), handle, bReturnChildren); - } - - public static bool SetReturnAdditionalPreviews(UGCQueryHandle_t handle, bool bReturnAdditionalPreviews) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetReturnAdditionalPreviews(CSteamGameServerAPIContext.GetSteamUGC(), handle, bReturnAdditionalPreviews); - } - - public static bool SetReturnTotalOnly(UGCQueryHandle_t handle, bool bReturnTotalOnly) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetReturnTotalOnly(CSteamGameServerAPIContext.GetSteamUGC(), handle, bReturnTotalOnly); - } - - public static bool SetReturnPlaytimeStats(UGCQueryHandle_t handle, uint unDays) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetReturnPlaytimeStats(CSteamGameServerAPIContext.GetSteamUGC(), handle, unDays); - } - - public static bool SetLanguage(UGCQueryHandle_t handle, string pchLanguage) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchLanguage2 = new InteropHelp.UTF8StringHandle(pchLanguage)) { - return NativeMethods.ISteamUGC_SetLanguage(CSteamGameServerAPIContext.GetSteamUGC(), handle, pchLanguage2); - } - } - - public static bool SetAllowCachedResponse(UGCQueryHandle_t handle, uint unMaxAgeSeconds) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetAllowCachedResponse(CSteamGameServerAPIContext.GetSteamUGC(), handle, unMaxAgeSeconds); - } - - /// <summary> - /// <para> Options only for querying user UGC</para> - /// </summary> - public static bool SetCloudFileNameFilter(UGCQueryHandle_t handle, string pMatchCloudFileName) { - InteropHelp.TestIfAvailableGameServer(); - using (var pMatchCloudFileName2 = new InteropHelp.UTF8StringHandle(pMatchCloudFileName)) { - return NativeMethods.ISteamUGC_SetCloudFileNameFilter(CSteamGameServerAPIContext.GetSteamUGC(), handle, pMatchCloudFileName2); - } - } - - /// <summary> - /// <para> Options only for querying all UGC</para> - /// </summary> - public static bool SetMatchAnyTag(UGCQueryHandle_t handle, bool bMatchAnyTag) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetMatchAnyTag(CSteamGameServerAPIContext.GetSteamUGC(), handle, bMatchAnyTag); - } - - public static bool SetSearchText(UGCQueryHandle_t handle, string pSearchText) { - InteropHelp.TestIfAvailableGameServer(); - using (var pSearchText2 = new InteropHelp.UTF8StringHandle(pSearchText)) { - return NativeMethods.ISteamUGC_SetSearchText(CSteamGameServerAPIContext.GetSteamUGC(), handle, pSearchText2); - } - } - - public static bool SetRankedByTrendDays(UGCQueryHandle_t handle, uint unDays) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetRankedByTrendDays(CSteamGameServerAPIContext.GetSteamUGC(), handle, unDays); - } - - public static bool SetTimeCreatedDateRange(UGCQueryHandle_t handle, uint rtStart, uint rtEnd) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetTimeCreatedDateRange(CSteamGameServerAPIContext.GetSteamUGC(), handle, rtStart, rtEnd); - } - - public static bool SetTimeUpdatedDateRange(UGCQueryHandle_t handle, uint rtStart, uint rtEnd) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetTimeUpdatedDateRange(CSteamGameServerAPIContext.GetSteamUGC(), handle, rtStart, rtEnd); - } - - public static bool AddRequiredKeyValueTag(UGCQueryHandle_t handle, string pKey, string pValue) { - InteropHelp.TestIfAvailableGameServer(); - using (var pKey2 = new InteropHelp.UTF8StringHandle(pKey)) - using (var pValue2 = new InteropHelp.UTF8StringHandle(pValue)) { - return NativeMethods.ISteamUGC_AddRequiredKeyValueTag(CSteamGameServerAPIContext.GetSteamUGC(), handle, pKey2, pValue2); - } - } - - /// <summary> - /// <para> DEPRECATED - Use CreateQueryUGCDetailsRequest call above instead!</para> - /// </summary> - public static SteamAPICall_t RequestUGCDetails(PublishedFileId_t nPublishedFileID, uint unMaxAgeSeconds) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_RequestUGCDetails(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID, unMaxAgeSeconds); - } - - /// <summary> - /// <para> Steam Workshop Creator API</para> - /// <para> create new item for this app with no content attached yet</para> - /// </summary> - public static SteamAPICall_t CreateItem(AppId_t nConsumerAppId, EWorkshopFileType eFileType) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_CreateItem(CSteamGameServerAPIContext.GetSteamUGC(), nConsumerAppId, eFileType); - } - - /// <summary> - /// <para> start an UGC item update. Set changed properties before commiting update with CommitItemUpdate()</para> - /// </summary> - public static UGCUpdateHandle_t StartItemUpdate(AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableGameServer(); - return (UGCUpdateHandle_t)NativeMethods.ISteamUGC_StartItemUpdate(CSteamGameServerAPIContext.GetSteamUGC(), nConsumerAppId, nPublishedFileID); - } - - /// <summary> - /// <para> change the title of an UGC item</para> - /// </summary> - public static bool SetItemTitle(UGCUpdateHandle_t handle, string pchTitle) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchTitle2 = new InteropHelp.UTF8StringHandle(pchTitle)) { - return NativeMethods.ISteamUGC_SetItemTitle(CSteamGameServerAPIContext.GetSteamUGC(), handle, pchTitle2); - } - } - - /// <summary> - /// <para> change the description of an UGC item</para> - /// </summary> - public static bool SetItemDescription(UGCUpdateHandle_t handle, string pchDescription) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchDescription2 = new InteropHelp.UTF8StringHandle(pchDescription)) { - return NativeMethods.ISteamUGC_SetItemDescription(CSteamGameServerAPIContext.GetSteamUGC(), handle, pchDescription2); - } - } - - /// <summary> - /// <para> specify the language of the title or description that will be set</para> - /// </summary> - public static bool SetItemUpdateLanguage(UGCUpdateHandle_t handle, string pchLanguage) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchLanguage2 = new InteropHelp.UTF8StringHandle(pchLanguage)) { - return NativeMethods.ISteamUGC_SetItemUpdateLanguage(CSteamGameServerAPIContext.GetSteamUGC(), handle, pchLanguage2); - } - } - - /// <summary> - /// <para> change the metadata of an UGC item (max = k_cchDeveloperMetadataMax)</para> - /// </summary> - public static bool SetItemMetadata(UGCUpdateHandle_t handle, string pchMetaData) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchMetaData2 = new InteropHelp.UTF8StringHandle(pchMetaData)) { - return NativeMethods.ISteamUGC_SetItemMetadata(CSteamGameServerAPIContext.GetSteamUGC(), handle, pchMetaData2); - } - } - - /// <summary> - /// <para> change the visibility of an UGC item</para> - /// </summary> - public static bool SetItemVisibility(UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetItemVisibility(CSteamGameServerAPIContext.GetSteamUGC(), handle, eVisibility); - } - - /// <summary> - /// <para> change the tags of an UGC item</para> - /// </summary> - public static bool SetItemTags(UGCUpdateHandle_t updateHandle, System.Collections.Generic.IList<string> pTags) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetItemTags(CSteamGameServerAPIContext.GetSteamUGC(), updateHandle, new InteropHelp.SteamParamStringArray(pTags)); - } - - /// <summary> - /// <para> update item content from this local folder</para> - /// </summary> - public static bool SetItemContent(UGCUpdateHandle_t handle, string pszContentFolder) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszContentFolder2 = new InteropHelp.UTF8StringHandle(pszContentFolder)) { - return NativeMethods.ISteamUGC_SetItemContent(CSteamGameServerAPIContext.GetSteamUGC(), handle, pszContentFolder2); - } - } - - /// <summary> - /// <para> change preview image file for this item. pszPreviewFile points to local image file, which must be under 1MB in size</para> - /// </summary> - public static bool SetItemPreview(UGCUpdateHandle_t handle, string pszPreviewFile) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszPreviewFile2 = new InteropHelp.UTF8StringHandle(pszPreviewFile)) { - return NativeMethods.ISteamUGC_SetItemPreview(CSteamGameServerAPIContext.GetSteamUGC(), handle, pszPreviewFile2); - } - } - - /// <summary> - /// <para> use legacy upload for a single small file. The parameter to SetItemContent() should either be a directory with one file or the full path to the file. The file must also be less than 10MB in size.</para> - /// </summary> - public static bool SetAllowLegacyUpload(UGCUpdateHandle_t handle, bool bAllowLegacyUpload) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_SetAllowLegacyUpload(CSteamGameServerAPIContext.GetSteamUGC(), handle, bAllowLegacyUpload); - } - - /// <summary> - /// <para> remove all existing key-value tags (you can add new ones via the AddItemKeyValueTag function)</para> - /// </summary> - public static bool RemoveAllItemKeyValueTags(UGCUpdateHandle_t handle) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_RemoveAllItemKeyValueTags(CSteamGameServerAPIContext.GetSteamUGC(), handle); - } - - /// <summary> - /// <para> remove any existing key-value tags with the specified key</para> - /// </summary> - public static bool RemoveItemKeyValueTags(UGCUpdateHandle_t handle, string pchKey) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) { - return NativeMethods.ISteamUGC_RemoveItemKeyValueTags(CSteamGameServerAPIContext.GetSteamUGC(), handle, pchKey2); - } - } - - /// <summary> - /// <para> add new key-value tags for the item. Note that there can be multiple values for a tag.</para> - /// </summary> - public static bool AddItemKeyValueTag(UGCUpdateHandle_t handle, string pchKey, string pchValue) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) - using (var pchValue2 = new InteropHelp.UTF8StringHandle(pchValue)) { - return NativeMethods.ISteamUGC_AddItemKeyValueTag(CSteamGameServerAPIContext.GetSteamUGC(), handle, pchKey2, pchValue2); - } - } - - /// <summary> - /// <para> add preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size</para> - /// </summary> - public static bool AddItemPreviewFile(UGCUpdateHandle_t handle, string pszPreviewFile, EItemPreviewType type) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszPreviewFile2 = new InteropHelp.UTF8StringHandle(pszPreviewFile)) { - return NativeMethods.ISteamUGC_AddItemPreviewFile(CSteamGameServerAPIContext.GetSteamUGC(), handle, pszPreviewFile2, type); - } - } - - /// <summary> - /// <para> add preview video for this item</para> - /// </summary> - public static bool AddItemPreviewVideo(UGCUpdateHandle_t handle, string pszVideoID) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszVideoID2 = new InteropHelp.UTF8StringHandle(pszVideoID)) { - return NativeMethods.ISteamUGC_AddItemPreviewVideo(CSteamGameServerAPIContext.GetSteamUGC(), handle, pszVideoID2); - } - } - - /// <summary> - /// <para> updates an existing preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size</para> - /// </summary> - public static bool UpdateItemPreviewFile(UGCUpdateHandle_t handle, uint index, string pszPreviewFile) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszPreviewFile2 = new InteropHelp.UTF8StringHandle(pszPreviewFile)) { - return NativeMethods.ISteamUGC_UpdateItemPreviewFile(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, pszPreviewFile2); - } - } - - /// <summary> - /// <para> updates an existing preview video for this item</para> - /// </summary> - public static bool UpdateItemPreviewVideo(UGCUpdateHandle_t handle, uint index, string pszVideoID) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszVideoID2 = new InteropHelp.UTF8StringHandle(pszVideoID)) { - return NativeMethods.ISteamUGC_UpdateItemPreviewVideo(CSteamGameServerAPIContext.GetSteamUGC(), handle, index, pszVideoID2); - } - } - - /// <summary> - /// <para> remove a preview by index starting at 0 (previews are sorted)</para> - /// </summary> - public static bool RemoveItemPreview(UGCUpdateHandle_t handle, uint index) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_RemoveItemPreview(CSteamGameServerAPIContext.GetSteamUGC(), handle, index); - } - - public static bool AddContentDescriptor(UGCUpdateHandle_t handle, EUGCContentDescriptorID descid) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_AddContentDescriptor(CSteamGameServerAPIContext.GetSteamUGC(), handle, descid); - } - - public static bool RemoveContentDescriptor(UGCUpdateHandle_t handle, EUGCContentDescriptorID descid) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_RemoveContentDescriptor(CSteamGameServerAPIContext.GetSteamUGC(), handle, descid); - } - - /// <summary> - /// <para> commit update process started with StartItemUpdate()</para> - /// </summary> - public static SteamAPICall_t SubmitItemUpdate(UGCUpdateHandle_t handle, string pchChangeNote) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchChangeNote2 = new InteropHelp.UTF8StringHandle(pchChangeNote)) { - return (SteamAPICall_t)NativeMethods.ISteamUGC_SubmitItemUpdate(CSteamGameServerAPIContext.GetSteamUGC(), handle, pchChangeNote2); - } - } - - public static EItemUpdateStatus GetItemUpdateProgress(UGCUpdateHandle_t handle, out ulong punBytesProcessed, out ulong punBytesTotal) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_GetItemUpdateProgress(CSteamGameServerAPIContext.GetSteamUGC(), handle, out punBytesProcessed, out punBytesTotal); - } - - /// <summary> - /// <para> Steam Workshop Consumer API</para> - /// </summary> - public static SteamAPICall_t SetUserItemVote(PublishedFileId_t nPublishedFileID, bool bVoteUp) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_SetUserItemVote(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID, bVoteUp); - } - - public static SteamAPICall_t GetUserItemVote(PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_GetUserItemVote(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID); - } - - public static SteamAPICall_t AddItemToFavorites(AppId_t nAppId, PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_AddItemToFavorites(CSteamGameServerAPIContext.GetSteamUGC(), nAppId, nPublishedFileID); - } - - public static SteamAPICall_t RemoveItemFromFavorites(AppId_t nAppId, PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_RemoveItemFromFavorites(CSteamGameServerAPIContext.GetSteamUGC(), nAppId, nPublishedFileID); - } - - /// <summary> - /// <para> subscribe to this item, will be installed ASAP</para> - /// </summary> - public static SteamAPICall_t SubscribeItem(PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_SubscribeItem(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID); - } - - /// <summary> - /// <para> unsubscribe from this item, will be uninstalled after game quits</para> - /// </summary> - public static SteamAPICall_t UnsubscribeItem(PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_UnsubscribeItem(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID); - } - - /// <summary> - /// <para> number of subscribed items</para> - /// </summary> - public static uint GetNumSubscribedItems() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_GetNumSubscribedItems(CSteamGameServerAPIContext.GetSteamUGC()); - } - - /// <summary> - /// <para> all subscribed item PublishFileIDs</para> - /// </summary> - public static uint GetSubscribedItems(PublishedFileId_t[] pvecPublishedFileID, uint cMaxEntries) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_GetSubscribedItems(CSteamGameServerAPIContext.GetSteamUGC(), pvecPublishedFileID, cMaxEntries); - } - - /// <summary> - /// <para> get EItemState flags about item on this client</para> - /// </summary> - public static uint GetItemState(PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_GetItemState(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID); - } - - /// <summary> - /// <para> get info about currently installed content on disc for items that have k_EItemStateInstalled set</para> - /// <para> if k_EItemStateLegacyItem is set, pchFolder contains the path to the legacy file itself (not a folder)</para> - /// </summary> - public static bool GetItemInstallInfo(PublishedFileId_t nPublishedFileID, out ulong punSizeOnDisk, out string pchFolder, uint cchFolderSize, out uint punTimeStamp) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pchFolder2 = Marshal.AllocHGlobal((int)cchFolderSize); - bool ret = NativeMethods.ISteamUGC_GetItemInstallInfo(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID, out punSizeOnDisk, pchFolder2, cchFolderSize, out punTimeStamp); - pchFolder = ret ? InteropHelp.PtrToStringUTF8(pchFolder2) : null; - Marshal.FreeHGlobal(pchFolder2); - return ret; - } - - /// <summary> - /// <para> get info about pending update for items that have k_EItemStateNeedsUpdate set. punBytesTotal will be valid after download started once</para> - /// </summary> - public static bool GetItemDownloadInfo(PublishedFileId_t nPublishedFileID, out ulong punBytesDownloaded, out ulong punBytesTotal) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_GetItemDownloadInfo(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID, out punBytesDownloaded, out punBytesTotal); - } - - /// <summary> - /// <para> download new or update already installed item. If function returns true, wait for DownloadItemResult_t. If the item is already installed,</para> - /// <para> then files on disk should not be used until callback received. If item is not subscribed to, it will be cached for some time.</para> - /// <para> If bHighPriority is set, any other item download will be suspended and this item downloaded ASAP.</para> - /// </summary> - public static bool DownloadItem(PublishedFileId_t nPublishedFileID, bool bHighPriority) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_DownloadItem(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID, bHighPriority); - } - - /// <summary> - /// <para> game servers can set a specific workshop folder before issuing any UGC commands.</para> - /// <para> This is helpful if you want to support multiple game servers running out of the same install folder</para> - /// </summary> - public static bool BInitWorkshopForGameServer(DepotId_t unWorkshopDepotID, string pszFolder) { - InteropHelp.TestIfAvailableGameServer(); - using (var pszFolder2 = new InteropHelp.UTF8StringHandle(pszFolder)) { - return NativeMethods.ISteamUGC_BInitWorkshopForGameServer(CSteamGameServerAPIContext.GetSteamUGC(), unWorkshopDepotID, pszFolder2); - } - } - - /// <summary> - /// <para> SuspendDownloads( true ) will suspend all workshop downloads until SuspendDownloads( false ) is called or the game ends</para> - /// </summary> - public static void SuspendDownloads(bool bSuspend) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamUGC_SuspendDownloads(CSteamGameServerAPIContext.GetSteamUGC(), bSuspend); - } - - /// <summary> - /// <para> usage tracking</para> - /// </summary> - public static SteamAPICall_t StartPlaytimeTracking(PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_StartPlaytimeTracking(CSteamGameServerAPIContext.GetSteamUGC(), pvecPublishedFileID, unNumPublishedFileIDs); - } - - public static SteamAPICall_t StopPlaytimeTracking(PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_StopPlaytimeTracking(CSteamGameServerAPIContext.GetSteamUGC(), pvecPublishedFileID, unNumPublishedFileIDs); - } - - public static SteamAPICall_t StopPlaytimeTrackingForAllItems() { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_StopPlaytimeTrackingForAllItems(CSteamGameServerAPIContext.GetSteamUGC()); - } - - /// <summary> - /// <para> parent-child relationship or dependency management</para> - /// </summary> - public static SteamAPICall_t AddDependency(PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_AddDependency(CSteamGameServerAPIContext.GetSteamUGC(), nParentPublishedFileID, nChildPublishedFileID); - } - - public static SteamAPICall_t RemoveDependency(PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_RemoveDependency(CSteamGameServerAPIContext.GetSteamUGC(), nParentPublishedFileID, nChildPublishedFileID); - } - - /// <summary> - /// <para> add/remove app dependence/requirements (usually DLC)</para> - /// </summary> - public static SteamAPICall_t AddAppDependency(PublishedFileId_t nPublishedFileID, AppId_t nAppID) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_AddAppDependency(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID, nAppID); - } - - public static SteamAPICall_t RemoveAppDependency(PublishedFileId_t nPublishedFileID, AppId_t nAppID) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_RemoveAppDependency(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID, nAppID); - } - - /// <summary> - /// <para> request app dependencies. note that whatever callback you register for GetAppDependenciesResult_t may be called multiple times</para> - /// <para> until all app dependencies have been returned</para> - /// </summary> - public static SteamAPICall_t GetAppDependencies(PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_GetAppDependencies(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID); - } - - /// <summary> - /// <para> delete the item without prompting the user</para> - /// </summary> - public static SteamAPICall_t DeleteItem(PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_DeleteItem(CSteamGameServerAPIContext.GetSteamUGC(), nPublishedFileID); - } - - /// <summary> - /// <para> Show the app's latest Workshop EULA to the user in an overlay window, where they can accept it or not</para> - /// </summary> - public static bool ShowWorkshopEULA() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUGC_ShowWorkshopEULA(CSteamGameServerAPIContext.GetSteamUGC()); - } - - /// <summary> - /// <para> Retrieve information related to the user's acceptance or not of the app's specific Workshop EULA</para> - /// </summary> - public static SteamAPICall_t GetWorkshopEULAStatus() { - InteropHelp.TestIfAvailableGameServer(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_GetWorkshopEULAStatus(CSteamGameServerAPIContext.GetSteamUGC()); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverugc.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverugc.cs.meta deleted file mode 100644 index 67ed663..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverugc.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d9d587bbccfa08f44bce4b14c0826e27 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverutils.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverutils.cs deleted file mode 100644 index bfd7e52..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverutils.cs +++ /dev/null @@ -1,356 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamGameServerUtils { - /// <summary> - /// <para> return the number of seconds since the user</para> - /// </summary> - public static uint GetSecondsSinceAppActive() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_GetSecondsSinceAppActive(CSteamGameServerAPIContext.GetSteamUtils()); - } - - public static uint GetSecondsSinceComputerActive() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_GetSecondsSinceComputerActive(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> the universe this client is connecting to</para> - /// </summary> - public static EUniverse GetConnectedUniverse() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_GetConnectedUniverse(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time)</para> - /// </summary> - public static uint GetServerRealTime() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_GetServerRealTime(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database)</para> - /// <para> e.g "US" or "UK".</para> - /// </summary> - public static string GetIPCountry() { - InteropHelp.TestIfAvailableGameServer(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamUtils_GetIPCountry(CSteamGameServerAPIContext.GetSteamUtils())); - } - - /// <summary> - /// <para> returns true if the image exists, and valid sizes were filled out</para> - /// </summary> - public static bool GetImageSize(int iImage, out uint pnWidth, out uint pnHeight) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_GetImageSize(CSteamGameServerAPIContext.GetSteamUtils(), iImage, out pnWidth, out pnHeight); - } - - /// <summary> - /// <para> returns true if the image exists, and the buffer was successfully filled out</para> - /// <para> results are returned in RGBA format</para> - /// <para> the destination buffer size should be 4 * height * width * sizeof(char)</para> - /// </summary> - public static bool GetImageRGBA(int iImage, byte[] pubDest, int nDestBufferSize) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_GetImageRGBA(CSteamGameServerAPIContext.GetSteamUtils(), iImage, pubDest, nDestBufferSize); - } - - /// <summary> - /// <para> return the amount of battery power left in the current system in % [0..100], 255 for being on AC power</para> - /// </summary> - public static byte GetCurrentBatteryPower() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_GetCurrentBatteryPower(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> returns the appID of the current process</para> - /// </summary> - public static AppId_t GetAppID() { - InteropHelp.TestIfAvailableGameServer(); - return (AppId_t)NativeMethods.ISteamUtils_GetAppID(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Sets the position where the overlay instance for the currently calling game should show notifications.</para> - /// <para> This position is per-game and if this function is called from outside of a game context it will do nothing.</para> - /// </summary> - public static void SetOverlayNotificationPosition(ENotificationPosition eNotificationPosition) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamUtils_SetOverlayNotificationPosition(CSteamGameServerAPIContext.GetSteamUtils(), eNotificationPosition); - } - - /// <summary> - /// <para> API asynchronous call results</para> - /// <para> can be used directly, but more commonly used via the callback dispatch API (see steam_api.h)</para> - /// </summary> - public static bool IsAPICallCompleted(SteamAPICall_t hSteamAPICall, out bool pbFailed) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_IsAPICallCompleted(CSteamGameServerAPIContext.GetSteamUtils(), hSteamAPICall, out pbFailed); - } - - public static ESteamAPICallFailure GetAPICallFailureReason(SteamAPICall_t hSteamAPICall) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_GetAPICallFailureReason(CSteamGameServerAPIContext.GetSteamUtils(), hSteamAPICall); - } - - public static bool GetAPICallResult(SteamAPICall_t hSteamAPICall, IntPtr pCallback, int cubCallback, int iCallbackExpected, out bool pbFailed) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_GetAPICallResult(CSteamGameServerAPIContext.GetSteamUtils(), hSteamAPICall, pCallback, cubCallback, iCallbackExpected, out pbFailed); - } - - /// <summary> - /// <para> returns the number of IPC calls made since the last time this function was called</para> - /// <para> Used for perf debugging so you can understand how many IPC calls your game makes per frame</para> - /// <para> Every IPC call is at minimum a thread context switch if not a process one so you want to rate</para> - /// <para> control how often you do them.</para> - /// </summary> - public static uint GetIPCCallCount() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_GetIPCCallCount(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> API warning handling</para> - /// <para> 'int' is the severity; 0 for msg, 1 for warning</para> - /// <para> 'const char *' is the text of the message</para> - /// <para> callbacks will occur directly after the API function is called that generated the warning or message</para> - /// </summary> - public static void SetWarningMessageHook(SteamAPIWarningMessageHook_t pFunction) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamUtils_SetWarningMessageHook(CSteamGameServerAPIContext.GetSteamUtils(), pFunction); - } - - /// <summary> - /// <para> Returns true if the overlay is running & the user can access it. The overlay process could take a few seconds to</para> - /// <para> start & hook the game process, so this function will initially return false while the overlay is loading.</para> - /// </summary> - public static bool IsOverlayEnabled() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_IsOverlayEnabled(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Normally this call is unneeded if your game has a constantly running frame loop that calls the</para> - /// <para> D3D Present API, or OGL SwapBuffers API every frame.</para> - /// <para> However, if you have a game that only refreshes the screen on an event driven basis then that can break</para> - /// <para> the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also</para> - /// <para> need to Present() to the screen any time an even needing a notification happens or when the overlay is</para> - /// <para> brought up over the game by a user. You can use this API to ask the overlay if it currently need a present</para> - /// <para> in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you</para> - /// <para> refresh the screen with Present or SwapBuffers to allow the overlay to do it's work.</para> - /// </summary> - public static bool BOverlayNeedsPresent() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_BOverlayNeedsPresent(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Asynchronous call to check if an executable file has been signed using the public key set on the signing tab</para> - /// <para> of the partner site, for example to refuse to load modified executable files.</para> - /// <para> The result is returned in CheckFileSignature_t.</para> - /// <para> k_ECheckFileSignatureNoSignaturesFoundForThisApp - This app has not been configured on the signing tab of the partner site to enable this function.</para> - /// <para> k_ECheckFileSignatureNoSignaturesFoundForThisFile - This file is not listed on the signing tab for the partner site.</para> - /// <para> k_ECheckFileSignatureFileNotFound - The file does not exist on disk.</para> - /// <para> k_ECheckFileSignatureInvalidSignature - The file exists, and the signing tab has been set for this file, but the file is either not signed or the signature does not match.</para> - /// <para> k_ECheckFileSignatureValidSignature - The file is signed and the signature is valid.</para> - /// </summary> - public static SteamAPICall_t CheckFileSignature(string szFileName) { - InteropHelp.TestIfAvailableGameServer(); - using (var szFileName2 = new InteropHelp.UTF8StringHandle(szFileName)) { - return (SteamAPICall_t)NativeMethods.ISteamUtils_CheckFileSignature(CSteamGameServerAPIContext.GetSteamUtils(), szFileName2); - } - } - - /// <summary> - /// <para> Activates the full-screen text input dialog which takes a initial text string and returns the text the user has typed</para> - /// </summary> - public static bool ShowGamepadTextInput(EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText) { - InteropHelp.TestIfAvailableGameServer(); - using (var pchDescription2 = new InteropHelp.UTF8StringHandle(pchDescription)) - using (var pchExistingText2 = new InteropHelp.UTF8StringHandle(pchExistingText)) { - return NativeMethods.ISteamUtils_ShowGamepadTextInput(CSteamGameServerAPIContext.GetSteamUtils(), eInputMode, eLineInputMode, pchDescription2, unCharMax, pchExistingText2); - } - } - - /// <summary> - /// <para> Returns previously entered text & length</para> - /// </summary> - public static uint GetEnteredGamepadTextLength() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_GetEnteredGamepadTextLength(CSteamGameServerAPIContext.GetSteamUtils()); - } - - public static bool GetEnteredGamepadTextInput(out string pchText, uint cchText) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pchText2 = Marshal.AllocHGlobal((int)cchText); - bool ret = NativeMethods.ISteamUtils_GetEnteredGamepadTextInput(CSteamGameServerAPIContext.GetSteamUtils(), pchText2, cchText); - pchText = ret ? InteropHelp.PtrToStringUTF8(pchText2) : null; - Marshal.FreeHGlobal(pchText2); - return ret; - } - - /// <summary> - /// <para> returns the language the steam client is running in, you probably want ISteamApps::GetCurrentGameLanguage instead, this is for very special usage cases</para> - /// </summary> - public static string GetSteamUILanguage() { - InteropHelp.TestIfAvailableGameServer(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamUtils_GetSteamUILanguage(CSteamGameServerAPIContext.GetSteamUtils())); - } - - /// <summary> - /// <para> returns true if Steam itself is running in VR mode</para> - /// </summary> - public static bool IsSteamRunningInVR() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_IsSteamRunningInVR(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition.</para> - /// </summary> - public static void SetOverlayNotificationInset(int nHorizontalInset, int nVerticalInset) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamUtils_SetOverlayNotificationInset(CSteamGameServerAPIContext.GetSteamUtils(), nHorizontalInset, nVerticalInset); - } - - /// <summary> - /// <para> returns true if Steam & the Steam Overlay are running in Big Picture mode</para> - /// <para> Games much be launched through the Steam client to enable the Big Picture overlay. During development,</para> - /// <para> a game can be added as a non-steam game to the developers library to test this feature</para> - /// </summary> - public static bool IsSteamInBigPictureMode() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_IsSteamInBigPictureMode(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> ask SteamUI to create and render its OpenVR dashboard</para> - /// </summary> - public static void StartVRDashboard() { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamUtils_StartVRDashboard(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Returns true if the HMD content will be streamed via Steam Remote Play</para> - /// </summary> - public static bool IsVRHeadsetStreamingEnabled() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_IsVRHeadsetStreamingEnabled(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Set whether the HMD content will be streamed via Steam Remote Play</para> - /// <para> If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed.</para> - /// <para> If this is set to false, then the application window will be streamed instead, and remote input will be allowed.</para> - /// <para> The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game.</para> - /// <para> (this is useful for games that have asymmetric multiplayer gameplay)</para> - /// </summary> - public static void SetVRHeadsetStreamingEnabled(bool bEnabled) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamUtils_SetVRHeadsetStreamingEnabled(CSteamGameServerAPIContext.GetSteamUtils(), bEnabled); - } - - /// <summary> - /// <para> Returns whether this steam client is a Steam China specific client, vs the global client.</para> - /// </summary> - public static bool IsSteamChinaLauncher() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_IsSteamChinaLauncher(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Initializes text filtering, loading dictionaries for the language the game is running in.</para> - /// <para> unFilterOptions are reserved for future use and should be set to 0</para> - /// <para> Returns false if filtering is unavailable for the game's language, in which case FilterText() will act as a passthrough.</para> - /// <para> Users can customize the text filter behavior in their Steam Account preferences:</para> - /// <para> https://store.steampowered.com/account/preferences#CommunityContentPreferences</para> - /// </summary> - public static bool InitFilterText(uint unFilterOptions = 0) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_InitFilterText(CSteamGameServerAPIContext.GetSteamUtils(), unFilterOptions); - } - - /// <summary> - /// <para> Filters the provided input message and places the filtered result into pchOutFilteredText, using legally required filtering and additional filtering based on the context and user settings</para> - /// <para> eContext is the type of content in the input string</para> - /// <para> sourceSteamID is the Steam ID that is the source of the input string (e.g. the player with the name, or who said the chat text)</para> - /// <para> pchInputText is the input string that should be filtered, which can be ASCII or UTF-8</para> - /// <para> pchOutFilteredText is where the output will be placed, even if no filtering is performed</para> - /// <para> nByteSizeOutFilteredText is the size (in bytes) of pchOutFilteredText, should be at least strlen(pchInputText)+1</para> - /// <para> Returns the number of characters (not bytes) filtered</para> - /// </summary> - public static int FilterText(ETextFilteringContext eContext, CSteamID sourceSteamID, string pchInputMessage, out string pchOutFilteredText, uint nByteSizeOutFilteredText) { - InteropHelp.TestIfAvailableGameServer(); - IntPtr pchOutFilteredText2 = Marshal.AllocHGlobal((int)nByteSizeOutFilteredText); - using (var pchInputMessage2 = new InteropHelp.UTF8StringHandle(pchInputMessage)) { - int ret = NativeMethods.ISteamUtils_FilterText(CSteamGameServerAPIContext.GetSteamUtils(), eContext, sourceSteamID, pchInputMessage2, pchOutFilteredText2, nByteSizeOutFilteredText); - pchOutFilteredText = ret != -1 ? InteropHelp.PtrToStringUTF8(pchOutFilteredText2) : null; - Marshal.FreeHGlobal(pchOutFilteredText2); - return ret; - } - } - - /// <summary> - /// <para> Return what we believe your current ipv6 connectivity to "the internet" is on the specified protocol.</para> - /// <para> This does NOT tell you if the Steam client is currently connected to Steam via ipv6.</para> - /// </summary> - public static ESteamIPv6ConnectivityState GetIPv6ConnectivityState(ESteamIPv6ConnectivityProtocol eProtocol) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_GetIPv6ConnectivityState(CSteamGameServerAPIContext.GetSteamUtils(), eProtocol); - } - - /// <summary> - /// <para> returns true if currently running on the Steam Deck device</para> - /// </summary> - public static bool IsSteamRunningOnSteamDeck() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_IsSteamRunningOnSteamDeck(CSteamGameServerAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Opens a floating keyboard over the game content and sends OS keyboard keys directly to the game.</para> - /// <para> The text field position is specified in pixels relative the origin of the game window and is used to position the floating keyboard in a way that doesn't cover the text field</para> - /// </summary> - public static bool ShowFloatingGamepadTextInput(EFloatingGamepadTextInputMode eKeyboardMode, int nTextFieldXPosition, int nTextFieldYPosition, int nTextFieldWidth, int nTextFieldHeight) { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_ShowFloatingGamepadTextInput(CSteamGameServerAPIContext.GetSteamUtils(), eKeyboardMode, nTextFieldXPosition, nTextFieldYPosition, nTextFieldWidth, nTextFieldHeight); - } - - /// <summary> - /// <para> In game launchers that don't have controller support you can call this to have Steam Input translate the controller input into mouse/kb to navigate the launcher</para> - /// </summary> - public static void SetGameLauncherMode(bool bLauncherMode) { - InteropHelp.TestIfAvailableGameServer(); - NativeMethods.ISteamUtils_SetGameLauncherMode(CSteamGameServerAPIContext.GetSteamUtils(), bLauncherMode); - } - - /// <summary> - /// <para> Dismisses the floating keyboard.</para> - /// </summary> - public static bool DismissFloatingGamepadTextInput() { - InteropHelp.TestIfAvailableGameServer(); - return NativeMethods.ISteamUtils_DismissFloatingGamepadTextInput(CSteamGameServerAPIContext.GetSteamUtils()); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverutils.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverutils.cs.meta deleted file mode 100644 index fabea4a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamgameserverutils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3bc4fe214c0d4e141a8566489f6eba33 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhtmlsurface.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhtmlsurface.cs deleted file mode 100644 index cc56426..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhtmlsurface.cs +++ /dev/null @@ -1,341 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamHTMLSurface { - /// <summary> - /// <para> Must call init and shutdown when starting/ending use of the interface</para> - /// </summary> - public static bool Init() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTMLSurface_Init(CSteamAPIContext.GetSteamHTMLSurface()); - } - - public static bool Shutdown() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTMLSurface_Shutdown(CSteamAPIContext.GetSteamHTMLSurface()); - } - - /// <summary> - /// <para> Create a browser object for display of a html page, when creation is complete the call handle</para> - /// <para> will return a HTML_BrowserReady_t callback for the HHTMLBrowser of your new browser.</para> - /// <para> The user agent string is a substring to be added to the general user agent string so you can</para> - /// <para> identify your client on web servers.</para> - /// <para> The userCSS string lets you apply a CSS style sheet to every displayed page, leave null if</para> - /// <para> you do not require this functionality.</para> - /// <para> YOU MUST HAVE IMPLEMENTED HANDLERS FOR HTML_BrowserReady_t, HTML_StartRequest_t,</para> - /// <para> HTML_JSAlert_t, HTML_JSConfirm_t, and HTML_FileOpenDialog_t! See the CALLBACKS</para> - /// <para> section of this interface (AllowStartRequest, etc) for more details. If you do</para> - /// <para> not implement these callback handlers, the browser may appear to hang instead of</para> - /// <para> navigating to new pages or triggering javascript popups.</para> - /// </summary> - public static SteamAPICall_t CreateBrowser(string pchUserAgent, string pchUserCSS) { - InteropHelp.TestIfAvailableClient(); - using (var pchUserAgent2 = new InteropHelp.UTF8StringHandle(pchUserAgent)) - using (var pchUserCSS2 = new InteropHelp.UTF8StringHandle(pchUserCSS)) { - return (SteamAPICall_t)NativeMethods.ISteamHTMLSurface_CreateBrowser(CSteamAPIContext.GetSteamHTMLSurface(), pchUserAgent2, pchUserCSS2); - } - } - - /// <summary> - /// <para> Call this when you are done with a html surface, this lets us free the resources being used by it</para> - /// </summary> - public static void RemoveBrowser(HHTMLBrowser unBrowserHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_RemoveBrowser(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle); - } - - /// <summary> - /// <para> Navigate to this URL, results in a HTML_StartRequest_t as the request commences</para> - /// </summary> - public static void LoadURL(HHTMLBrowser unBrowserHandle, string pchURL, string pchPostData) { - InteropHelp.TestIfAvailableClient(); - using (var pchURL2 = new InteropHelp.UTF8StringHandle(pchURL)) - using (var pchPostData2 = new InteropHelp.UTF8StringHandle(pchPostData)) { - NativeMethods.ISteamHTMLSurface_LoadURL(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, pchURL2, pchPostData2); - } - } - - /// <summary> - /// <para> Tells the surface the size in pixels to display the surface</para> - /// </summary> - public static void SetSize(HHTMLBrowser unBrowserHandle, uint unWidth, uint unHeight) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_SetSize(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, unWidth, unHeight); - } - - /// <summary> - /// <para> Stop the load of the current html page</para> - /// </summary> - public static void StopLoad(HHTMLBrowser unBrowserHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_StopLoad(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle); - } - - /// <summary> - /// <para> Reload (most likely from local cache) the current page</para> - /// </summary> - public static void Reload(HHTMLBrowser unBrowserHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_Reload(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle); - } - - /// <summary> - /// <para> navigate back in the page history</para> - /// </summary> - public static void GoBack(HHTMLBrowser unBrowserHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_GoBack(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle); - } - - /// <summary> - /// <para> navigate forward in the page history</para> - /// </summary> - public static void GoForward(HHTMLBrowser unBrowserHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_GoForward(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle); - } - - /// <summary> - /// <para> add this header to any url requests from this browser</para> - /// </summary> - public static void AddHeader(HHTMLBrowser unBrowserHandle, string pchKey, string pchValue) { - InteropHelp.TestIfAvailableClient(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) - using (var pchValue2 = new InteropHelp.UTF8StringHandle(pchValue)) { - NativeMethods.ISteamHTMLSurface_AddHeader(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, pchKey2, pchValue2); - } - } - - /// <summary> - /// <para> run this javascript script in the currently loaded page</para> - /// </summary> - public static void ExecuteJavascript(HHTMLBrowser unBrowserHandle, string pchScript) { - InteropHelp.TestIfAvailableClient(); - using (var pchScript2 = new InteropHelp.UTF8StringHandle(pchScript)) { - NativeMethods.ISteamHTMLSurface_ExecuteJavascript(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, pchScript2); - } - } - - /// <summary> - /// <para> Mouse click and mouse movement commands</para> - /// </summary> - public static void MouseUp(HHTMLBrowser unBrowserHandle, EHTMLMouseButton eMouseButton) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_MouseUp(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, eMouseButton); - } - - public static void MouseDown(HHTMLBrowser unBrowserHandle, EHTMLMouseButton eMouseButton) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_MouseDown(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, eMouseButton); - } - - public static void MouseDoubleClick(HHTMLBrowser unBrowserHandle, EHTMLMouseButton eMouseButton) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_MouseDoubleClick(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, eMouseButton); - } - - /// <summary> - /// <para> x and y are relative to the HTML bounds</para> - /// </summary> - public static void MouseMove(HHTMLBrowser unBrowserHandle, int x, int y) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_MouseMove(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, x, y); - } - - /// <summary> - /// <para> nDelta is pixels of scroll</para> - /// </summary> - public static void MouseWheel(HHTMLBrowser unBrowserHandle, int nDelta) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_MouseWheel(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, nDelta); - } - - /// <summary> - /// <para> keyboard interactions, native keycode is the virtual key code value from your OS, system key flags the key to not</para> - /// <para> be sent as a typed character as well as a key down</para> - /// </summary> - public static void KeyDown(HHTMLBrowser unBrowserHandle, uint nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers, bool bIsSystemKey = false) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_KeyDown(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, nNativeKeyCode, eHTMLKeyModifiers, bIsSystemKey); - } - - public static void KeyUp(HHTMLBrowser unBrowserHandle, uint nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_KeyUp(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, nNativeKeyCode, eHTMLKeyModifiers); - } - - /// <summary> - /// <para> cUnicodeChar is the unicode character point for this keypress (and potentially multiple chars per press)</para> - /// </summary> - public static void KeyChar(HHTMLBrowser unBrowserHandle, uint cUnicodeChar, EHTMLKeyModifiers eHTMLKeyModifiers) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_KeyChar(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, cUnicodeChar, eHTMLKeyModifiers); - } - - /// <summary> - /// <para> programmatically scroll this many pixels on the page</para> - /// </summary> - public static void SetHorizontalScroll(HHTMLBrowser unBrowserHandle, uint nAbsolutePixelScroll) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_SetHorizontalScroll(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, nAbsolutePixelScroll); - } - - public static void SetVerticalScroll(HHTMLBrowser unBrowserHandle, uint nAbsolutePixelScroll) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_SetVerticalScroll(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, nAbsolutePixelScroll); - } - - /// <summary> - /// <para> tell the html control if it has key focus currently, controls showing the I-beam cursor in text controls amongst other things</para> - /// </summary> - public static void SetKeyFocus(HHTMLBrowser unBrowserHandle, bool bHasKeyFocus) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_SetKeyFocus(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, bHasKeyFocus); - } - - /// <summary> - /// <para> open the current pages html code in the local editor of choice, used for debugging</para> - /// </summary> - public static void ViewSource(HHTMLBrowser unBrowserHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_ViewSource(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle); - } - - /// <summary> - /// <para> copy the currently selected text on the html page to the local clipboard</para> - /// </summary> - public static void CopyToClipboard(HHTMLBrowser unBrowserHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_CopyToClipboard(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle); - } - - /// <summary> - /// <para> paste from the local clipboard to the current html page</para> - /// </summary> - public static void PasteFromClipboard(HHTMLBrowser unBrowserHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_PasteFromClipboard(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle); - } - - /// <summary> - /// <para> find this string in the browser, if bCurrentlyInFind is true then instead cycle to the next matching element</para> - /// </summary> - public static void Find(HHTMLBrowser unBrowserHandle, string pchSearchStr, bool bCurrentlyInFind, bool bReverse) { - InteropHelp.TestIfAvailableClient(); - using (var pchSearchStr2 = new InteropHelp.UTF8StringHandle(pchSearchStr)) { - NativeMethods.ISteamHTMLSurface_Find(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, pchSearchStr2, bCurrentlyInFind, bReverse); - } - } - - /// <summary> - /// <para> cancel a currently running find</para> - /// </summary> - public static void StopFind(HHTMLBrowser unBrowserHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_StopFind(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle); - } - - /// <summary> - /// <para> return details about the link at position x,y on the current page</para> - /// </summary> - public static void GetLinkAtPosition(HHTMLBrowser unBrowserHandle, int x, int y) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_GetLinkAtPosition(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, x, y); - } - - /// <summary> - /// <para> set a webcookie for the hostname in question</para> - /// </summary> - public static void SetCookie(string pchHostname, string pchKey, string pchValue, string pchPath = "/", uint nExpires = 0, bool bSecure = false, bool bHTTPOnly = false) { - InteropHelp.TestIfAvailableClient(); - using (var pchHostname2 = new InteropHelp.UTF8StringHandle(pchHostname)) - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) - using (var pchValue2 = new InteropHelp.UTF8StringHandle(pchValue)) - using (var pchPath2 = new InteropHelp.UTF8StringHandle(pchPath)) { - NativeMethods.ISteamHTMLSurface_SetCookie(CSteamAPIContext.GetSteamHTMLSurface(), pchHostname2, pchKey2, pchValue2, pchPath2, nExpires, bSecure, bHTTPOnly); - } - } - - /// <summary> - /// <para> Zoom the current page by flZoom ( from 0.0 to 2.0, so to zoom to 120% use 1.2 ), zooming around point X,Y in the page (use 0,0 if you don't care)</para> - /// </summary> - public static void SetPageScaleFactor(HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_SetPageScaleFactor(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, flZoom, nPointX, nPointY); - } - - /// <summary> - /// <para> Enable/disable low-resource background mode, where javascript and repaint timers are throttled, resources are</para> - /// <para> more aggressively purged from memory, and audio/video elements are paused. When background mode is enabled,</para> - /// <para> all HTML5 video and audio objects will execute ".pause()" and gain the property "._steam_background_paused = 1".</para> - /// <para> When background mode is disabled, any video or audio objects with that property will resume with ".play()".</para> - /// </summary> - public static void SetBackgroundMode(HHTMLBrowser unBrowserHandle, bool bBackgroundMode) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_SetBackgroundMode(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, bBackgroundMode); - } - - /// <summary> - /// <para> Scale the output display space by this factor, this is useful when displaying content on high dpi devices.</para> - /// <para> Specifies the ratio between physical and logical pixels.</para> - /// </summary> - public static void SetDPIScalingFactor(HHTMLBrowser unBrowserHandle, float flDPIScaling) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_SetDPIScalingFactor(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, flDPIScaling); - } - - /// <summary> - /// <para> Open HTML/JS developer tools</para> - /// </summary> - public static void OpenDeveloperTools(HHTMLBrowser unBrowserHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_OpenDeveloperTools(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle); - } - - /// <summary> - /// <para> CALLBACKS</para> - /// <para> These set of functions are used as responses to callback requests</para> - /// <para> You MUST call this in response to a HTML_StartRequest_t callback</para> - /// <para> Set bAllowed to true to allow this navigation, false to cancel it and stay</para> - /// <para> on the current page. You can use this feature to limit the valid pages</para> - /// <para> allowed in your HTML surface.</para> - /// </summary> - public static void AllowStartRequest(HHTMLBrowser unBrowserHandle, bool bAllowed) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_AllowStartRequest(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, bAllowed); - } - - /// <summary> - /// <para> You MUST call this in response to a HTML_JSAlert_t or HTML_JSConfirm_t callback</para> - /// <para> Set bResult to true for the OK option of a confirm, use false otherwise</para> - /// </summary> - public static void JSDialogResponse(HHTMLBrowser unBrowserHandle, bool bResult) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_JSDialogResponse(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, bResult); - } - - /// <summary> - /// <para> You MUST call this in response to a HTML_FileOpenDialog_t callback</para> - /// </summary> - public static void FileLoadDialogResponse(HHTMLBrowser unBrowserHandle, IntPtr pchSelectedFiles) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamHTMLSurface_FileLoadDialogResponse(CSteamAPIContext.GetSteamHTMLSurface(), unBrowserHandle, pchSelectedFiles); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhtmlsurface.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhtmlsurface.cs.meta deleted file mode 100644 index 74a006d..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhtmlsurface.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c43dd86c6f6eae843b97b286ffc38913 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhttp.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhttp.cs deleted file mode 100644 index 9425dec..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhttp.cs +++ /dev/null @@ -1,277 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamHTTP { - /// <summary> - /// <para> Initializes a new HTTP request, returning a handle to use in further operations on it. Requires</para> - /// <para> the method (GET or POST) and the absolute URL for the request. Both http and https are supported,</para> - /// <para> so this string must start with http:// or https:// and should look like http://store.steampowered.com/app/250/</para> - /// <para> or such.</para> - /// </summary> - public static HTTPRequestHandle CreateHTTPRequest(EHTTPMethod eHTTPRequestMethod, string pchAbsoluteURL) { - InteropHelp.TestIfAvailableClient(); - using (var pchAbsoluteURL2 = new InteropHelp.UTF8StringHandle(pchAbsoluteURL)) { - return (HTTPRequestHandle)NativeMethods.ISteamHTTP_CreateHTTPRequest(CSteamAPIContext.GetSteamHTTP(), eHTTPRequestMethod, pchAbsoluteURL2); - } - } - - /// <summary> - /// <para> Set a context value for the request, which will be returned in the HTTPRequestCompleted_t callback after</para> - /// <para> sending the request. This is just so the caller can easily keep track of which callbacks go with which request data.</para> - /// </summary> - public static bool SetHTTPRequestContextValue(HTTPRequestHandle hRequest, ulong ulContextValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_SetHTTPRequestContextValue(CSteamAPIContext.GetSteamHTTP(), hRequest, ulContextValue); - } - - /// <summary> - /// <para> Set a timeout in seconds for the HTTP request, must be called prior to sending the request. Default</para> - /// <para> timeout is 60 seconds if you don't call this. Returns false if the handle is invalid, or the request</para> - /// <para> has already been sent.</para> - /// </summary> - public static bool SetHTTPRequestNetworkActivityTimeout(HTTPRequestHandle hRequest, uint unTimeoutSeconds) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_SetHTTPRequestNetworkActivityTimeout(CSteamAPIContext.GetSteamHTTP(), hRequest, unTimeoutSeconds); - } - - /// <summary> - /// <para> Set a request header value for the request, must be called prior to sending the request. Will</para> - /// <para> return false if the handle is invalid or the request is already sent.</para> - /// </summary> - public static bool SetHTTPRequestHeaderValue(HTTPRequestHandle hRequest, string pchHeaderName, string pchHeaderValue) { - InteropHelp.TestIfAvailableClient(); - using (var pchHeaderName2 = new InteropHelp.UTF8StringHandle(pchHeaderName)) - using (var pchHeaderValue2 = new InteropHelp.UTF8StringHandle(pchHeaderValue)) { - return NativeMethods.ISteamHTTP_SetHTTPRequestHeaderValue(CSteamAPIContext.GetSteamHTTP(), hRequest, pchHeaderName2, pchHeaderValue2); - } - } - - /// <summary> - /// <para> Set a GET or POST parameter value on the request, which is set will depend on the EHTTPMethod specified</para> - /// <para> when creating the request. Must be called prior to sending the request. Will return false if the</para> - /// <para> handle is invalid or the request is already sent.</para> - /// </summary> - public static bool SetHTTPRequestGetOrPostParameter(HTTPRequestHandle hRequest, string pchParamName, string pchParamValue) { - InteropHelp.TestIfAvailableClient(); - using (var pchParamName2 = new InteropHelp.UTF8StringHandle(pchParamName)) - using (var pchParamValue2 = new InteropHelp.UTF8StringHandle(pchParamValue)) { - return NativeMethods.ISteamHTTP_SetHTTPRequestGetOrPostParameter(CSteamAPIContext.GetSteamHTTP(), hRequest, pchParamName2, pchParamValue2); - } - } - - /// <summary> - /// <para> Sends the HTTP request, will return false on a bad handle, otherwise use SteamCallHandle to wait on</para> - /// <para> asynchronous response via callback.</para> - /// <para> Note: If the user is in offline mode in Steam, then this will add a only-if-cached cache-control</para> - /// <para> header and only do a local cache lookup rather than sending any actual remote request.</para> - /// </summary> - public static bool SendHTTPRequest(HTTPRequestHandle hRequest, out SteamAPICall_t pCallHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_SendHTTPRequest(CSteamAPIContext.GetSteamHTTP(), hRequest, out pCallHandle); - } - - /// <summary> - /// <para> Sends the HTTP request, will return false on a bad handle, otherwise use SteamCallHandle to wait on</para> - /// <para> asynchronous response via callback for completion, and listen for HTTPRequestHeadersReceived_t and</para> - /// <para> HTTPRequestDataReceived_t callbacks while streaming.</para> - /// </summary> - public static bool SendHTTPRequestAndStreamResponse(HTTPRequestHandle hRequest, out SteamAPICall_t pCallHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_SendHTTPRequestAndStreamResponse(CSteamAPIContext.GetSteamHTTP(), hRequest, out pCallHandle); - } - - /// <summary> - /// <para> Defers a request you have sent, the actual HTTP client code may have many requests queued, and this will move</para> - /// <para> the specified request to the tail of the queue. Returns false on invalid handle, or if the request is not yet sent.</para> - /// </summary> - public static bool DeferHTTPRequest(HTTPRequestHandle hRequest) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_DeferHTTPRequest(CSteamAPIContext.GetSteamHTTP(), hRequest); - } - - /// <summary> - /// <para> Prioritizes a request you have sent, the actual HTTP client code may have many requests queued, and this will move</para> - /// <para> the specified request to the head of the queue. Returns false on invalid handle, or if the request is not yet sent.</para> - /// </summary> - public static bool PrioritizeHTTPRequest(HTTPRequestHandle hRequest) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_PrioritizeHTTPRequest(CSteamAPIContext.GetSteamHTTP(), hRequest); - } - - /// <summary> - /// <para> Checks if a response header is present in a HTTP response given a handle from HTTPRequestCompleted_t, also</para> - /// <para> returns the size of the header value if present so the caller and allocate a correctly sized buffer for</para> - /// <para> GetHTTPResponseHeaderValue.</para> - /// </summary> - public static bool GetHTTPResponseHeaderSize(HTTPRequestHandle hRequest, string pchHeaderName, out uint unResponseHeaderSize) { - InteropHelp.TestIfAvailableClient(); - using (var pchHeaderName2 = new InteropHelp.UTF8StringHandle(pchHeaderName)) { - return NativeMethods.ISteamHTTP_GetHTTPResponseHeaderSize(CSteamAPIContext.GetSteamHTTP(), hRequest, pchHeaderName2, out unResponseHeaderSize); - } - } - - /// <summary> - /// <para> Gets header values from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the</para> - /// <para> header is not present or if your buffer is too small to contain it's value. You should first call</para> - /// <para> BGetHTTPResponseHeaderSize to check for the presence of the header and to find out the size buffer needed.</para> - /// </summary> - public static bool GetHTTPResponseHeaderValue(HTTPRequestHandle hRequest, string pchHeaderName, byte[] pHeaderValueBuffer, uint unBufferSize) { - InteropHelp.TestIfAvailableClient(); - using (var pchHeaderName2 = new InteropHelp.UTF8StringHandle(pchHeaderName)) { - return NativeMethods.ISteamHTTP_GetHTTPResponseHeaderValue(CSteamAPIContext.GetSteamHTTP(), hRequest, pchHeaderName2, pHeaderValueBuffer, unBufferSize); - } - } - - /// <summary> - /// <para> Gets the size of the body data from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the</para> - /// <para> handle is invalid.</para> - /// </summary> - public static bool GetHTTPResponseBodySize(HTTPRequestHandle hRequest, out uint unBodySize) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_GetHTTPResponseBodySize(CSteamAPIContext.GetSteamHTTP(), hRequest, out unBodySize); - } - - /// <summary> - /// <para> Gets the body data from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the</para> - /// <para> handle is invalid or is to a streaming response, or if the provided buffer is not the correct size. Use BGetHTTPResponseBodySize first to find out</para> - /// <para> the correct buffer size to use.</para> - /// </summary> - public static bool GetHTTPResponseBodyData(HTTPRequestHandle hRequest, byte[] pBodyDataBuffer, uint unBufferSize) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_GetHTTPResponseBodyData(CSteamAPIContext.GetSteamHTTP(), hRequest, pBodyDataBuffer, unBufferSize); - } - - /// <summary> - /// <para> Gets the body data from a streaming HTTP response given a handle from HTTPRequestDataReceived_t. Will return false if the</para> - /// <para> handle is invalid or is to a non-streaming response (meaning it wasn't sent with SendHTTPRequestAndStreamResponse), or if the buffer size and offset</para> - /// <para> do not match the size and offset sent in HTTPRequestDataReceived_t.</para> - /// </summary> - public static bool GetHTTPStreamingResponseBodyData(HTTPRequestHandle hRequest, uint cOffset, byte[] pBodyDataBuffer, uint unBufferSize) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_GetHTTPStreamingResponseBodyData(CSteamAPIContext.GetSteamHTTP(), hRequest, cOffset, pBodyDataBuffer, unBufferSize); - } - - /// <summary> - /// <para> Releases an HTTP response handle, should always be called to free resources after receiving a HTTPRequestCompleted_t</para> - /// <para> callback and finishing using the response.</para> - /// </summary> - public static bool ReleaseHTTPRequest(HTTPRequestHandle hRequest) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_ReleaseHTTPRequest(CSteamAPIContext.GetSteamHTTP(), hRequest); - } - - /// <summary> - /// <para> Gets progress on downloading the body for the request. This will be zero unless a response header has already been</para> - /// <para> received which included a content-length field. For responses that contain no content-length it will report</para> - /// <para> zero for the duration of the request as the size is unknown until the connection closes.</para> - /// </summary> - public static bool GetHTTPDownloadProgressPct(HTTPRequestHandle hRequest, out float pflPercentOut) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_GetHTTPDownloadProgressPct(CSteamAPIContext.GetSteamHTTP(), hRequest, out pflPercentOut); - } - - /// <summary> - /// <para> Sets the body for an HTTP Post request. Will fail and return false on a GET request, and will fail if POST params</para> - /// <para> have already been set for the request. Setting this raw body makes it the only contents for the post, the pchContentType</para> - /// <para> parameter will set the content-type header for the request so the server may know how to interpret the body.</para> - /// </summary> - public static bool SetHTTPRequestRawPostBody(HTTPRequestHandle hRequest, string pchContentType, byte[] pubBody, uint unBodyLen) { - InteropHelp.TestIfAvailableClient(); - using (var pchContentType2 = new InteropHelp.UTF8StringHandle(pchContentType)) { - return NativeMethods.ISteamHTTP_SetHTTPRequestRawPostBody(CSteamAPIContext.GetSteamHTTP(), hRequest, pchContentType2, pubBody, unBodyLen); - } - } - - /// <summary> - /// <para> Creates a cookie container handle which you must later free with ReleaseCookieContainer(). If bAllowResponsesToModify=true</para> - /// <para> than any response to your requests using this cookie container may add new cookies which may be transmitted with</para> - /// <para> future requests. If bAllowResponsesToModify=false than only cookies you explicitly set will be sent. This API is just for</para> - /// <para> during process lifetime, after steam restarts no cookies are persisted and you have no way to access the cookie container across</para> - /// <para> repeat executions of your process.</para> - /// </summary> - public static HTTPCookieContainerHandle CreateCookieContainer(bool bAllowResponsesToModify) { - InteropHelp.TestIfAvailableClient(); - return (HTTPCookieContainerHandle)NativeMethods.ISteamHTTP_CreateCookieContainer(CSteamAPIContext.GetSteamHTTP(), bAllowResponsesToModify); - } - - /// <summary> - /// <para> Release a cookie container you are finished using, freeing it's memory</para> - /// </summary> - public static bool ReleaseCookieContainer(HTTPCookieContainerHandle hCookieContainer) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_ReleaseCookieContainer(CSteamAPIContext.GetSteamHTTP(), hCookieContainer); - } - - /// <summary> - /// <para> Adds a cookie to the specified cookie container that will be used with future requests.</para> - /// </summary> - public static bool SetCookie(HTTPCookieContainerHandle hCookieContainer, string pchHost, string pchUrl, string pchCookie) { - InteropHelp.TestIfAvailableClient(); - using (var pchHost2 = new InteropHelp.UTF8StringHandle(pchHost)) - using (var pchUrl2 = new InteropHelp.UTF8StringHandle(pchUrl)) - using (var pchCookie2 = new InteropHelp.UTF8StringHandle(pchCookie)) { - return NativeMethods.ISteamHTTP_SetCookie(CSteamAPIContext.GetSteamHTTP(), hCookieContainer, pchHost2, pchUrl2, pchCookie2); - } - } - - /// <summary> - /// <para> Set the cookie container to use for a HTTP request</para> - /// </summary> - public static bool SetHTTPRequestCookieContainer(HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_SetHTTPRequestCookieContainer(CSteamAPIContext.GetSteamHTTP(), hRequest, hCookieContainer); - } - - /// <summary> - /// <para> Set the extra user agent info for a request, this doesn't clobber the normal user agent, it just adds the extra info on the end</para> - /// </summary> - public static bool SetHTTPRequestUserAgentInfo(HTTPRequestHandle hRequest, string pchUserAgentInfo) { - InteropHelp.TestIfAvailableClient(); - using (var pchUserAgentInfo2 = new InteropHelp.UTF8StringHandle(pchUserAgentInfo)) { - return NativeMethods.ISteamHTTP_SetHTTPRequestUserAgentInfo(CSteamAPIContext.GetSteamHTTP(), hRequest, pchUserAgentInfo2); - } - } - - /// <summary> - /// <para> Disable or re-enable verification of SSL/TLS certificates.</para> - /// <para> By default, certificates are checked for all HTTPS requests.</para> - /// </summary> - public static bool SetHTTPRequestRequiresVerifiedCertificate(HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(CSteamAPIContext.GetSteamHTTP(), hRequest, bRequireVerifiedCertificate); - } - - /// <summary> - /// <para> Set an absolute timeout on the HTTP request, this is just a total time timeout different than the network activity timeout</para> - /// <para> which can bump everytime we get more data</para> - /// </summary> - public static bool SetHTTPRequestAbsoluteTimeoutMS(HTTPRequestHandle hRequest, uint unMilliseconds) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(CSteamAPIContext.GetSteamHTTP(), hRequest, unMilliseconds); - } - - /// <summary> - /// <para> Check if the reason the request failed was because we timed it out (rather than some harder failure)</para> - /// </summary> - public static bool GetHTTPRequestWasTimedOut(HTTPRequestHandle hRequest, out bool pbWasTimedOut) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamHTTP_GetHTTPRequestWasTimedOut(CSteamAPIContext.GetSteamHTTP(), hRequest, out pbWasTimedOut); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhttp.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhttp.cs.meta deleted file mode 100644 index eda8ee8..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamhttp.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: add20100ffe7965439ac0185598adb2c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminput.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminput.cs deleted file mode 100644 index 08ca24f..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminput.cs +++ /dev/null @@ -1,476 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamInput { - /// <summary> - /// <para> Init and Shutdown must be called when starting/ending use of this interface.</para> - /// <para> if bExplicitlyCallRunFrame is called then you will need to manually call RunFrame</para> - /// <para> each frame, otherwise Steam Input will updated when SteamAPI_RunCallbacks() is called</para> - /// </summary> - public static bool Init(bool bExplicitlyCallRunFrame) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_Init(CSteamAPIContext.GetSteamInput(), bExplicitlyCallRunFrame); - } - - public static bool Shutdown() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_Shutdown(CSteamAPIContext.GetSteamInput()); - } - - /// <summary> - /// <para> Set the absolute path to the Input Action Manifest file containing the in-game actions</para> - /// <para> and file paths to the official configurations. Used in games that bundle Steam Input</para> - /// <para> configurations inside of the game depot instead of using the Steam Workshop</para> - /// </summary> - public static bool SetInputActionManifestFilePath(string pchInputActionManifestAbsolutePath) { - InteropHelp.TestIfAvailableClient(); - using (var pchInputActionManifestAbsolutePath2 = new InteropHelp.UTF8StringHandle(pchInputActionManifestAbsolutePath)) { - return NativeMethods.ISteamInput_SetInputActionManifestFilePath(CSteamAPIContext.GetSteamInput(), pchInputActionManifestAbsolutePath2); - } - } - - /// <summary> - /// <para> Synchronize API state with the latest Steam Input action data available. This</para> - /// <para> is performed automatically by SteamAPI_RunCallbacks, but for the absolute lowest</para> - /// <para> possible latency, you call this directly before reading controller state.</para> - /// <para> Note: This must be called from somewhere before GetConnectedControllers will</para> - /// <para> return any handles</para> - /// </summary> - public static void RunFrame(bool bReservedValue = true) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_RunFrame(CSteamAPIContext.GetSteamInput(), bReservedValue); - } - - /// <summary> - /// <para> Waits on an IPC event from Steam sent when there is new data to be fetched from</para> - /// <para> the data drop. Returns true when data was recievied before the timeout expires.</para> - /// <para> Useful for games with a dedicated input thread</para> - /// </summary> - public static bool BWaitForData(bool bWaitForever, uint unTimeout) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_BWaitForData(CSteamAPIContext.GetSteamInput(), bWaitForever, unTimeout); - } - - /// <summary> - /// <para> Returns true if new data has been received since the last time action data was accessed</para> - /// <para> via GetDigitalActionData or GetAnalogActionData. The game will still need to call</para> - /// <para> SteamInput()->RunFrame() or SteamAPI_RunCallbacks() before this to update the data stream</para> - /// </summary> - public static bool BNewDataAvailable() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_BNewDataAvailable(CSteamAPIContext.GetSteamInput()); - } - - /// <summary> - /// <para> Enumerate currently connected Steam Input enabled devices - developers can opt in controller by type (ex: Xbox/Playstation/etc) via</para> - /// <para> the Steam Input settings in the Steamworks site or users can opt-in in their controller settings in Steam.</para> - /// <para> handlesOut should point to a STEAM_INPUT_MAX_COUNT sized array of InputHandle_t handles</para> - /// <para> Returns the number of handles written to handlesOut</para> - /// </summary> - public static int GetConnectedControllers(InputHandle_t[] handlesOut) { - InteropHelp.TestIfAvailableClient(); - if (handlesOut != null && handlesOut.Length != Constants.STEAM_INPUT_MAX_COUNT) { - throw new System.ArgumentException("handlesOut must be the same size as Constants.STEAM_INPUT_MAX_COUNT!"); - } - return NativeMethods.ISteamInput_GetConnectedControllers(CSteamAPIContext.GetSteamInput(), handlesOut); - } - - /// <summary> - /// <para>-----------------------------------------------------------------------------</para> - /// <para> CALLBACKS</para> - /// <para>-----------------------------------------------------------------------------</para> - /// <para> Controller configuration loaded - these callbacks will always fire if you have</para> - /// <para> a handler. Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks</para> - /// <para> Enable SteamInputDeviceConnected_t and SteamInputDeviceDisconnected_t callbacks.</para> - /// <para> Each controller that is already connected will generate a device connected</para> - /// <para> callback when you enable them</para> - /// </summary> - public static void EnableDeviceCallbacks() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_EnableDeviceCallbacks(CSteamAPIContext.GetSteamInput()); - } - - /// <summary> - /// <para> Controller Connected - provides info about a single newly connected controller</para> - /// <para> Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks</para> - /// <para> Controller Disconnected - provides info about a single disconnected controller</para> - /// <para> Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks</para> - /// <para> Controllers using Gamepad emulation (XInput, DirectInput, etc) will be seated in the order that</para> - /// <para> input is sent by the device. This callback will fire on first input for each device and when the</para> - /// <para> a user has manually changed the order via the Steam overlay. This also has the device type info</para> - /// <para> so that you can change out glyph sets without making additional API calls</para> - /// <para> Enable SteamInputActionEvent_t callbacks. Directly calls your callback function</para> - /// <para> for lower latency than standard Steam callbacks. Supports one callback at a time.</para> - /// <para> Note: this is called within either SteamInput()->RunFrame or by SteamAPI_RunCallbacks</para> - /// </summary> - public static void EnableActionEventCallbacks(SteamInputActionEventCallbackPointer pCallback) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_EnableActionEventCallbacks(CSteamAPIContext.GetSteamInput(), pCallback); - } - - /// <summary> - /// <para>-----------------------------------------------------------------------------</para> - /// <para> ACTION SETS</para> - /// <para>-----------------------------------------------------------------------------</para> - /// <para> Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls.</para> - /// </summary> - public static InputActionSetHandle_t GetActionSetHandle(string pszActionSetName) { - InteropHelp.TestIfAvailableClient(); - using (var pszActionSetName2 = new InteropHelp.UTF8StringHandle(pszActionSetName)) { - return (InputActionSetHandle_t)NativeMethods.ISteamInput_GetActionSetHandle(CSteamAPIContext.GetSteamInput(), pszActionSetName2); - } - } - - /// <summary> - /// <para> Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive')</para> - /// <para> This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in</para> - /// <para> your state loops, instead of trying to place it in all of your state transitions.</para> - /// </summary> - public static void ActivateActionSet(InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_ActivateActionSet(CSteamAPIContext.GetSteamInput(), inputHandle, actionSetHandle); - } - - public static InputActionSetHandle_t GetCurrentActionSet(InputHandle_t inputHandle) { - InteropHelp.TestIfAvailableClient(); - return (InputActionSetHandle_t)NativeMethods.ISteamInput_GetCurrentActionSet(CSteamAPIContext.GetSteamInput(), inputHandle); - } - - /// <summary> - /// <para> ACTION SET LAYERS</para> - /// </summary> - public static void ActivateActionSetLayer(InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_ActivateActionSetLayer(CSteamAPIContext.GetSteamInput(), inputHandle, actionSetLayerHandle); - } - - public static void DeactivateActionSetLayer(InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_DeactivateActionSetLayer(CSteamAPIContext.GetSteamInput(), inputHandle, actionSetLayerHandle); - } - - public static void DeactivateAllActionSetLayers(InputHandle_t inputHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_DeactivateAllActionSetLayers(CSteamAPIContext.GetSteamInput(), inputHandle); - } - - /// <summary> - /// <para> Enumerate currently active layers.</para> - /// <para> handlesOut should point to a STEAM_INPUT_MAX_ACTIVE_LAYERS sized array of InputActionSetHandle_t handles</para> - /// <para> Returns the number of handles written to handlesOut</para> - /// </summary> - public static int GetActiveActionSetLayers(InputHandle_t inputHandle, InputActionSetHandle_t[] handlesOut) { - InteropHelp.TestIfAvailableClient(); - if (handlesOut != null && handlesOut.Length != Constants.STEAM_INPUT_MAX_ACTIVE_LAYERS) { - throw new System.ArgumentException("handlesOut must be the same size as Constants.STEAM_INPUT_MAX_ACTIVE_LAYERS!"); - } - return NativeMethods.ISteamInput_GetActiveActionSetLayers(CSteamAPIContext.GetSteamInput(), inputHandle, handlesOut); - } - - /// <summary> - /// <para>-----------------------------------------------------------------------------</para> - /// <para> ACTIONS</para> - /// <para>-----------------------------------------------------------------------------</para> - /// <para> Lookup the handle for a digital action. Best to do this once on startup, and store the handles for all future API calls.</para> - /// </summary> - public static InputDigitalActionHandle_t GetDigitalActionHandle(string pszActionName) { - InteropHelp.TestIfAvailableClient(); - using (var pszActionName2 = new InteropHelp.UTF8StringHandle(pszActionName)) { - return (InputDigitalActionHandle_t)NativeMethods.ISteamInput_GetDigitalActionHandle(CSteamAPIContext.GetSteamInput(), pszActionName2); - } - } - - /// <summary> - /// <para> Returns the current state of the supplied digital game action</para> - /// </summary> - public static InputDigitalActionData_t GetDigitalActionData(InputHandle_t inputHandle, InputDigitalActionHandle_t digitalActionHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_GetDigitalActionData(CSteamAPIContext.GetSteamInput(), inputHandle, digitalActionHandle); - } - - /// <summary> - /// <para> Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action.</para> - /// <para> originsOut should point to a STEAM_INPUT_MAX_ORIGINS sized array of EInputActionOrigin handles. The EInputActionOrigin enum will get extended as support for new controller controllers gets added to</para> - /// <para> the Steam client and will exceed the values from this header, please check bounds if you are using a look up table.</para> - /// </summary> - public static int GetDigitalActionOrigins(InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, EInputActionOrigin[] originsOut) { - InteropHelp.TestIfAvailableClient(); - if (originsOut != null && originsOut.Length != Constants.STEAM_INPUT_MAX_ORIGINS) { - throw new System.ArgumentException("originsOut must be the same size as Constants.STEAM_INPUT_MAX_ORIGINS!"); - } - return NativeMethods.ISteamInput_GetDigitalActionOrigins(CSteamAPIContext.GetSteamInput(), inputHandle, actionSetHandle, digitalActionHandle, originsOut); - } - - /// <summary> - /// <para> Returns a localized string (from Steam's language setting) for the user-facing action name corresponding to the specified handle</para> - /// </summary> - public static string GetStringForDigitalActionName(InputDigitalActionHandle_t eActionHandle) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamInput_GetStringForDigitalActionName(CSteamAPIContext.GetSteamInput(), eActionHandle)); - } - - /// <summary> - /// <para> Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls.</para> - /// </summary> - public static InputAnalogActionHandle_t GetAnalogActionHandle(string pszActionName) { - InteropHelp.TestIfAvailableClient(); - using (var pszActionName2 = new InteropHelp.UTF8StringHandle(pszActionName)) { - return (InputAnalogActionHandle_t)NativeMethods.ISteamInput_GetAnalogActionHandle(CSteamAPIContext.GetSteamInput(), pszActionName2); - } - } - - /// <summary> - /// <para> Returns the current state of these supplied analog game action</para> - /// </summary> - public static InputAnalogActionData_t GetAnalogActionData(InputHandle_t inputHandle, InputAnalogActionHandle_t analogActionHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_GetAnalogActionData(CSteamAPIContext.GetSteamInput(), inputHandle, analogActionHandle); - } - - /// <summary> - /// <para> Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action.</para> - /// <para> originsOut should point to a STEAM_INPUT_MAX_ORIGINS sized array of EInputActionOrigin handles. The EInputActionOrigin enum will get extended as support for new controller controllers gets added to</para> - /// <para> the Steam client and will exceed the values from this header, please check bounds if you are using a look up table.</para> - /// </summary> - public static int GetAnalogActionOrigins(InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, EInputActionOrigin[] originsOut) { - InteropHelp.TestIfAvailableClient(); - if (originsOut != null && originsOut.Length != Constants.STEAM_INPUT_MAX_ORIGINS) { - throw new System.ArgumentException("originsOut must be the same size as Constants.STEAM_INPUT_MAX_ORIGINS!"); - } - return NativeMethods.ISteamInput_GetAnalogActionOrigins(CSteamAPIContext.GetSteamInput(), inputHandle, actionSetHandle, analogActionHandle, originsOut); - } - - /// <summary> - /// <para> Get a local path to a PNG file for the provided origin's glyph.</para> - /// </summary> - public static string GetGlyphPNGForActionOrigin(EInputActionOrigin eOrigin, ESteamInputGlyphSize eSize, uint unFlags) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamInput_GetGlyphPNGForActionOrigin(CSteamAPIContext.GetSteamInput(), eOrigin, eSize, unFlags)); - } - - /// <summary> - /// <para> Get a local path to a SVG file for the provided origin's glyph.</para> - /// </summary> - public static string GetGlyphSVGForActionOrigin(EInputActionOrigin eOrigin, uint unFlags) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamInput_GetGlyphSVGForActionOrigin(CSteamAPIContext.GetSteamInput(), eOrigin, unFlags)); - } - - /// <summary> - /// <para> Get a local path to an older, Big Picture Mode-style PNG file for a particular origin</para> - /// </summary> - public static string GetGlyphForActionOrigin_Legacy(EInputActionOrigin eOrigin) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamInput_GetGlyphForActionOrigin_Legacy(CSteamAPIContext.GetSteamInput(), eOrigin)); - } - - /// <summary> - /// <para> Returns a localized string (from Steam's language setting) for the specified origin.</para> - /// </summary> - public static string GetStringForActionOrigin(EInputActionOrigin eOrigin) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamInput_GetStringForActionOrigin(CSteamAPIContext.GetSteamInput(), eOrigin)); - } - - /// <summary> - /// <para> Returns a localized string (from Steam's language setting) for the user-facing action name corresponding to the specified handle</para> - /// </summary> - public static string GetStringForAnalogActionName(InputAnalogActionHandle_t eActionHandle) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamInput_GetStringForAnalogActionName(CSteamAPIContext.GetSteamInput(), eActionHandle)); - } - - /// <summary> - /// <para> Stop analog momentum for the action if it is a mouse action in trackball mode</para> - /// </summary> - public static void StopAnalogActionMomentum(InputHandle_t inputHandle, InputAnalogActionHandle_t eAction) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_StopAnalogActionMomentum(CSteamAPIContext.GetSteamInput(), inputHandle, eAction); - } - - /// <summary> - /// <para> Returns raw motion data from the specified device</para> - /// </summary> - public static InputMotionData_t GetMotionData(InputHandle_t inputHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_GetMotionData(CSteamAPIContext.GetSteamInput(), inputHandle); - } - - /// <summary> - /// <para>-----------------------------------------------------------------------------</para> - /// <para> OUTPUTS</para> - /// <para>-----------------------------------------------------------------------------</para> - /// <para> Trigger a vibration event on supported controllers - Steam will translate these commands into haptic pulses for Steam Controllers</para> - /// </summary> - public static void TriggerVibration(InputHandle_t inputHandle, ushort usLeftSpeed, ushort usRightSpeed) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_TriggerVibration(CSteamAPIContext.GetSteamInput(), inputHandle, usLeftSpeed, usRightSpeed); - } - - /// <summary> - /// <para> Trigger a vibration event on supported controllers including Xbox trigger impulse rumble - Steam will translate these commands into haptic pulses for Steam Controllers</para> - /// </summary> - public static void TriggerVibrationExtended(InputHandle_t inputHandle, ushort usLeftSpeed, ushort usRightSpeed, ushort usLeftTriggerSpeed, ushort usRightTriggerSpeed) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_TriggerVibrationExtended(CSteamAPIContext.GetSteamInput(), inputHandle, usLeftSpeed, usRightSpeed, usLeftTriggerSpeed, usRightTriggerSpeed); - } - - /// <summary> - /// <para> Send a haptic pulse, works on Steam Deck and Steam Controller devices</para> - /// </summary> - public static void TriggerSimpleHapticEvent(InputHandle_t inputHandle, EControllerHapticLocation eHapticLocation, byte nIntensity, char nGainDB, byte nOtherIntensity, char nOtherGainDB) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_TriggerSimpleHapticEvent(CSteamAPIContext.GetSteamInput(), inputHandle, eHapticLocation, nIntensity, nGainDB, nOtherIntensity, nOtherGainDB); - } - - /// <summary> - /// <para> Set the controller LED color on supported controllers. nFlags is a bitmask of values from ESteamInputLEDFlag - 0 will default to setting a color. Steam will handle</para> - /// <para> the behavior on exit of your program so you don't need to try restore the default as you are shutting down</para> - /// </summary> - public static void SetLEDColor(InputHandle_t inputHandle, byte nColorR, byte nColorG, byte nColorB, uint nFlags) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_SetLEDColor(CSteamAPIContext.GetSteamInput(), inputHandle, nColorR, nColorG, nColorB, nFlags); - } - - /// <summary> - /// <para> Trigger a haptic pulse on a Steam Controller - if you are approximating rumble you may want to use TriggerVibration instead.</para> - /// <para> Good uses for Haptic pulses include chimes, noises, or directional gameplay feedback (taking damage, footstep locations, etc).</para> - /// </summary> - public static void Legacy_TriggerHapticPulse(InputHandle_t inputHandle, ESteamControllerPad eTargetPad, ushort usDurationMicroSec) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_Legacy_TriggerHapticPulse(CSteamAPIContext.GetSteamInput(), inputHandle, eTargetPad, usDurationMicroSec); - } - - /// <summary> - /// <para> Trigger a haptic pulse with a duty cycle of usDurationMicroSec / usOffMicroSec, unRepeat times. If you are approximating rumble you may want to use TriggerVibration instead.</para> - /// <para> nFlags is currently unused and reserved for future use.</para> - /// </summary> - public static void Legacy_TriggerRepeatedHapticPulse(InputHandle_t inputHandle, ESteamControllerPad eTargetPad, ushort usDurationMicroSec, ushort usOffMicroSec, ushort unRepeat, uint nFlags) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_Legacy_TriggerRepeatedHapticPulse(CSteamAPIContext.GetSteamInput(), inputHandle, eTargetPad, usDurationMicroSec, usOffMicroSec, unRepeat, nFlags); - } - - /// <summary> - /// <para>-----------------------------------------------------------------------------</para> - /// <para> Utility functions available without using the rest of Steam Input API</para> - /// <para>-----------------------------------------------------------------------------</para> - /// <para> Invokes the Steam overlay and brings up the binding screen if the user is using Big Picture Mode</para> - /// <para> If the user is not in Big Picture Mode it will open up the binding in a new window</para> - /// </summary> - public static bool ShowBindingPanel(InputHandle_t inputHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_ShowBindingPanel(CSteamAPIContext.GetSteamInput(), inputHandle); - } - - /// <summary> - /// <para> Returns the input type for a particular handle - unlike EInputActionOrigin which update with Steam and may return unrecognized values</para> - /// <para> ESteamInputType will remain static and only return valid values from your SDK version</para> - /// </summary> - public static ESteamInputType GetInputTypeForHandle(InputHandle_t inputHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_GetInputTypeForHandle(CSteamAPIContext.GetSteamInput(), inputHandle); - } - - /// <summary> - /// <para> Returns the associated controller handle for the specified emulated gamepad - can be used with the above 2 functions</para> - /// <para> to identify controllers presented to your game over Xinput. Returns 0 if the Xinput index isn't associated with Steam Input</para> - /// </summary> - public static InputHandle_t GetControllerForGamepadIndex(int nIndex) { - InteropHelp.TestIfAvailableClient(); - return (InputHandle_t)NativeMethods.ISteamInput_GetControllerForGamepadIndex(CSteamAPIContext.GetSteamInput(), nIndex); - } - - /// <summary> - /// <para> Returns the associated gamepad index for the specified controller, if emulating a gamepad or -1 if not associated with an Xinput index</para> - /// </summary> - public static int GetGamepadIndexForController(InputHandle_t ulinputHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_GetGamepadIndexForController(CSteamAPIContext.GetSteamInput(), ulinputHandle); - } - - /// <summary> - /// <para> Returns a localized string (from Steam's language setting) for the specified Xbox controller origin.</para> - /// </summary> - public static string GetStringForXboxOrigin(EXboxOrigin eOrigin) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamInput_GetStringForXboxOrigin(CSteamAPIContext.GetSteamInput(), eOrigin)); - } - - /// <summary> - /// <para> Get a local path to art for on-screen glyph for a particular Xbox controller origin</para> - /// </summary> - public static string GetGlyphForXboxOrigin(EXboxOrigin eOrigin) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamInput_GetGlyphForXboxOrigin(CSteamAPIContext.GetSteamInput(), eOrigin)); - } - - /// <summary> - /// <para> Get the equivalent ActionOrigin for a given Xbox controller origin this can be chained with GetGlyphForActionOrigin to provide future proof glyphs for</para> - /// <para> non-Steam Input API action games. Note - this only translates the buttons directly and doesn't take into account any remapping a user has made in their configuration</para> - /// </summary> - public static EInputActionOrigin GetActionOriginFromXboxOrigin(InputHandle_t inputHandle, EXboxOrigin eOrigin) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_GetActionOriginFromXboxOrigin(CSteamAPIContext.GetSteamInput(), inputHandle, eOrigin); - } - - /// <summary> - /// <para> Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EInputActionOrigin_None</para> - /// <para> When a new input type is added you will be able to pass in k_ESteamInputType_Unknown and the closest origin that your version of the SDK recognized will be returned</para> - /// <para> ex: if a Playstation 5 controller was released this function would return Playstation 4 origins.</para> - /// </summary> - public static EInputActionOrigin TranslateActionOrigin(ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_TranslateActionOrigin(CSteamAPIContext.GetSteamInput(), eDestinationInputType, eSourceOrigin); - } - - /// <summary> - /// <para> Get the binding revision for a given device. Returns false if the handle was not valid or if a mapping is not yet loaded for the device</para> - /// </summary> - public static bool GetDeviceBindingRevision(InputHandle_t inputHandle, out int pMajor, out int pMinor) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_GetDeviceBindingRevision(CSteamAPIContext.GetSteamInput(), inputHandle, out pMajor, out pMinor); - } - - /// <summary> - /// <para> Get the Steam Remote Play session ID associated with a device, or 0 if there is no session associated with it</para> - /// <para> See isteamremoteplay.h for more information on Steam Remote Play sessions</para> - /// </summary> - public static uint GetRemotePlaySessionID(InputHandle_t inputHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_GetRemotePlaySessionID(CSteamAPIContext.GetSteamInput(), inputHandle); - } - - /// <summary> - /// <para> Get a bitmask of the Steam Input Configuration types opted in for the current session. Returns ESteamInputConfigurationEnableType values.</para> - /// <para> Note: user can override the settings from the Steamworks Partner site so the returned values may not exactly match your default configuration</para> - /// </summary> - public static ushort GetSessionInputConfigurationSettings() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInput_GetSessionInputConfigurationSettings(CSteamAPIContext.GetSteamInput()); - } - - /// <summary> - /// <para> Set the trigger effect for a DualSense controller</para> - /// </summary> - public static void SetDualSenseTriggerEffect(InputHandle_t inputHandle, IntPtr pParam) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInput_SetDualSenseTriggerEffect(CSteamAPIContext.GetSteamInput(), inputHandle, pParam); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminput.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminput.cs.meta deleted file mode 100644 index f38b735..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminput.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 41c08c9051a973f4ab4585374584267d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminventory.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminventory.cs deleted file mode 100644 index a86d6c8..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminventory.cs +++ /dev/null @@ -1,478 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamInventory { - /// <summary> - /// <para> INVENTORY ASYNC RESULT MANAGEMENT</para> - /// <para> Asynchronous inventory queries always output a result handle which can be used with</para> - /// <para> GetResultStatus, GetResultItems, etc. A SteamInventoryResultReady_t callback will</para> - /// <para> be triggered when the asynchronous result becomes ready (or fails).</para> - /// <para> Find out the status of an asynchronous inventory result handle. Possible values:</para> - /// <para> k_EResultPending - still in progress</para> - /// <para> k_EResultOK - done, result ready</para> - /// <para> k_EResultExpired - done, result ready, maybe out of date (see DeserializeResult)</para> - /// <para> k_EResultInvalidParam - ERROR: invalid API call parameters</para> - /// <para> k_EResultServiceUnavailable - ERROR: service temporarily down, you may retry later</para> - /// <para> k_EResultLimitExceeded - ERROR: operation would exceed per-user inventory limits</para> - /// <para> k_EResultFail - ERROR: unknown / generic error</para> - /// </summary> - public static EResult GetResultStatus(SteamInventoryResult_t resultHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_GetResultStatus(CSteamAPIContext.GetSteamInventory(), resultHandle); - } - - /// <summary> - /// <para> Copies the contents of a result set into a flat array. The specific</para> - /// <para> contents of the result set depend on which query which was used.</para> - /// </summary> - public static bool GetResultItems(SteamInventoryResult_t resultHandle, SteamItemDetails_t[] pOutItemsArray, ref uint punOutItemsArraySize) { - InteropHelp.TestIfAvailableClient(); - if (pOutItemsArray != null && pOutItemsArray.Length != punOutItemsArraySize) { - throw new System.ArgumentException("pOutItemsArray must be the same size as punOutItemsArraySize!"); - } - return NativeMethods.ISteamInventory_GetResultItems(CSteamAPIContext.GetSteamInventory(), resultHandle, pOutItemsArray, ref punOutItemsArraySize); - } - - /// <summary> - /// <para> In combination with GetResultItems, you can use GetResultItemProperty to retrieve</para> - /// <para> dynamic string properties for a given item returned in the result set.</para> - /// <para> Property names are always composed of ASCII letters, numbers, and/or underscores.</para> - /// <para> Pass a NULL pointer for pchPropertyName to get a comma - separated list of available</para> - /// <para> property names.</para> - /// <para> If pchValueBuffer is NULL, *punValueBufferSize will contain the</para> - /// <para> suggested buffer size. Otherwise it will be the number of bytes actually copied</para> - /// <para> to pchValueBuffer. If the results do not fit in the given buffer, partial</para> - /// <para> results may be copied.</para> - /// </summary> - public static bool GetResultItemProperty(SteamInventoryResult_t resultHandle, uint unItemIndex, string pchPropertyName, out string pchValueBuffer, ref uint punValueBufferSizeOut) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchValueBuffer2 = Marshal.AllocHGlobal((int)punValueBufferSizeOut); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) { - bool ret = NativeMethods.ISteamInventory_GetResultItemProperty(CSteamAPIContext.GetSteamInventory(), resultHandle, unItemIndex, pchPropertyName2, pchValueBuffer2, ref punValueBufferSizeOut); - pchValueBuffer = ret ? InteropHelp.PtrToStringUTF8(pchValueBuffer2) : null; - Marshal.FreeHGlobal(pchValueBuffer2); - return ret; - } - } - - /// <summary> - /// <para> Returns the server time at which the result was generated. Compare against</para> - /// <para> the value of IClientUtils::GetServerRealTime() to determine age.</para> - /// </summary> - public static uint GetResultTimestamp(SteamInventoryResult_t resultHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_GetResultTimestamp(CSteamAPIContext.GetSteamInventory(), resultHandle); - } - - /// <summary> - /// <para> Returns true if the result belongs to the target steam ID, false if the</para> - /// <para> result does not. This is important when using DeserializeResult, to verify</para> - /// <para> that a remote player is not pretending to have a different user's inventory.</para> - /// </summary> - public static bool CheckResultSteamID(SteamInventoryResult_t resultHandle, CSteamID steamIDExpected) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_CheckResultSteamID(CSteamAPIContext.GetSteamInventory(), resultHandle, steamIDExpected); - } - - /// <summary> - /// <para> Destroys a result handle and frees all associated memory.</para> - /// </summary> - public static void DestroyResult(SteamInventoryResult_t resultHandle) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInventory_DestroyResult(CSteamAPIContext.GetSteamInventory(), resultHandle); - } - - /// <summary> - /// <para> INVENTORY ASYNC QUERY</para> - /// <para> Captures the entire state of the current user's Steam inventory.</para> - /// <para> You must call DestroyResult on this handle when you are done with it.</para> - /// <para> Returns false and sets *pResultHandle to zero if inventory is unavailable.</para> - /// <para> Note: calls to this function are subject to rate limits and may return</para> - /// <para> cached results if called too frequently. It is suggested that you call</para> - /// <para> this function only when you are about to display the user's full inventory,</para> - /// <para> or if you expect that the inventory may have changed.</para> - /// </summary> - public static bool GetAllItems(out SteamInventoryResult_t pResultHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_GetAllItems(CSteamAPIContext.GetSteamInventory(), out pResultHandle); - } - - /// <summary> - /// <para> Captures the state of a subset of the current user's Steam inventory,</para> - /// <para> identified by an array of item instance IDs. The results from this call</para> - /// <para> can be serialized and passed to other players to "prove" that the current</para> - /// <para> user owns specific items, without exposing the user's entire inventory.</para> - /// <para> For example, you could call GetItemsByID with the IDs of the user's</para> - /// <para> currently equipped cosmetic items and serialize this to a buffer, and</para> - /// <para> then transmit this buffer to other players upon joining a game.</para> - /// </summary> - public static bool GetItemsByID(out SteamInventoryResult_t pResultHandle, SteamItemInstanceID_t[] pInstanceIDs, uint unCountInstanceIDs) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_GetItemsByID(CSteamAPIContext.GetSteamInventory(), out pResultHandle, pInstanceIDs, unCountInstanceIDs); - } - - /// <summary> - /// <para> RESULT SERIALIZATION AND AUTHENTICATION</para> - /// <para> Serialized result sets contain a short signature which can't be forged</para> - /// <para> or replayed across different game sessions. A result set can be serialized</para> - /// <para> on the local client, transmitted to other players via your game networking,</para> - /// <para> and deserialized by the remote players. This is a secure way of preventing</para> - /// <para> hackers from lying about posessing rare/high-value items.</para> - /// <para> Serializes a result set with signature bytes to an output buffer. Pass</para> - /// <para> NULL as an output buffer to get the required size via punOutBufferSize.</para> - /// <para> The size of a serialized result depends on the number items which are being</para> - /// <para> serialized. When securely transmitting items to other players, it is</para> - /// <para> recommended to use "GetItemsByID" first to create a minimal result set.</para> - /// <para> Results have a built-in timestamp which will be considered "expired" after</para> - /// <para> an hour has elapsed. See DeserializeResult for expiration handling.</para> - /// </summary> - public static bool SerializeResult(SteamInventoryResult_t resultHandle, byte[] pOutBuffer, out uint punOutBufferSize) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_SerializeResult(CSteamAPIContext.GetSteamInventory(), resultHandle, pOutBuffer, out punOutBufferSize); - } - - /// <summary> - /// <para> Deserializes a result set and verifies the signature bytes. Returns false</para> - /// <para> if bRequireFullOnlineVerify is set but Steam is running in Offline mode.</para> - /// <para> Otherwise returns true and then delivers error codes via GetResultStatus.</para> - /// <para> The bRESERVED_MUST_BE_FALSE flag is reserved for future use and should not</para> - /// <para> be set to true by your game at this time.</para> - /// <para> DeserializeResult has a potential soft-failure mode where the handle status</para> - /// <para> is set to k_EResultExpired. GetResultItems() still succeeds in this mode.</para> - /// <para> The "expired" result could indicate that the data may be out of date - not</para> - /// <para> just due to timed expiration (one hour), but also because one of the items</para> - /// <para> in the result set may have been traded or consumed since the result set was</para> - /// <para> generated. You could compare the timestamp from GetResultTimestamp() to</para> - /// <para> ISteamUtils::GetServerRealTime() to determine how old the data is. You could</para> - /// <para> simply ignore the "expired" result code and continue as normal, or you</para> - /// <para> could challenge the player with expired data to send an updated result set.</para> - /// </summary> - public static bool DeserializeResult(out SteamInventoryResult_t pOutResultHandle, byte[] pBuffer, uint unBufferSize, bool bRESERVED_MUST_BE_FALSE = false) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_DeserializeResult(CSteamAPIContext.GetSteamInventory(), out pOutResultHandle, pBuffer, unBufferSize, bRESERVED_MUST_BE_FALSE); - } - - /// <summary> - /// <para> INVENTORY ASYNC MODIFICATION</para> - /// <para> GenerateItems() creates one or more items and then generates a SteamInventoryCallback_t</para> - /// <para> notification with a matching nCallbackContext parameter. This API is only intended</para> - /// <para> for prototyping - it is only usable by Steam accounts that belong to the publisher group</para> - /// <para> for your game.</para> - /// <para> If punArrayQuantity is not NULL, it should be the same length as pArrayItems and should</para> - /// <para> describe the quantity of each item to generate.</para> - /// </summary> - public static bool GenerateItems(out SteamInventoryResult_t pResultHandle, SteamItemDef_t[] pArrayItemDefs, uint[] punArrayQuantity, uint unArrayLength) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_GenerateItems(CSteamAPIContext.GetSteamInventory(), out pResultHandle, pArrayItemDefs, punArrayQuantity, unArrayLength); - } - - /// <summary> - /// <para> GrantPromoItems() checks the list of promotional items for which the user may be eligible</para> - /// <para> and grants the items (one time only). On success, the result set will include items which</para> - /// <para> were granted, if any. If no items were granted because the user isn't eligible for any</para> - /// <para> promotions, this is still considered a success.</para> - /// </summary> - public static bool GrantPromoItems(out SteamInventoryResult_t pResultHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_GrantPromoItems(CSteamAPIContext.GetSteamInventory(), out pResultHandle); - } - - /// <summary> - /// <para> AddPromoItem() / AddPromoItems() are restricted versions of GrantPromoItems(). Instead of</para> - /// <para> scanning for all eligible promotional items, the check is restricted to a single item</para> - /// <para> definition or set of item definitions. This can be useful if your game has custom UI for</para> - /// <para> showing a specific promo item to the user.</para> - /// </summary> - public static bool AddPromoItem(out SteamInventoryResult_t pResultHandle, SteamItemDef_t itemDef) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_AddPromoItem(CSteamAPIContext.GetSteamInventory(), out pResultHandle, itemDef); - } - - public static bool AddPromoItems(out SteamInventoryResult_t pResultHandle, SteamItemDef_t[] pArrayItemDefs, uint unArrayLength) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_AddPromoItems(CSteamAPIContext.GetSteamInventory(), out pResultHandle, pArrayItemDefs, unArrayLength); - } - - /// <summary> - /// <para> ConsumeItem() removes items from the inventory, permanently. They cannot be recovered.</para> - /// <para> Not for the faint of heart - if your game implements item removal at all, a high-friction</para> - /// <para> UI confirmation process is highly recommended.</para> - /// </summary> - public static bool ConsumeItem(out SteamInventoryResult_t pResultHandle, SteamItemInstanceID_t itemConsume, uint unQuantity) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_ConsumeItem(CSteamAPIContext.GetSteamInventory(), out pResultHandle, itemConsume, unQuantity); - } - - /// <summary> - /// <para> ExchangeItems() is an atomic combination of item generation and consumption.</para> - /// <para> It can be used to implement crafting recipes or transmutations, or items which unpack</para> - /// <para> themselves into other items (e.g., a chest).</para> - /// <para> Exchange recipes are defined in the ItemDef, and explicitly list the required item</para> - /// <para> types and resulting generated type.</para> - /// <para> Exchange recipes are evaluated atomically by the Inventory Service; if the supplied</para> - /// <para> components do not match the recipe, or do not contain sufficient quantity, the</para> - /// <para> exchange will fail.</para> - /// </summary> - public static bool ExchangeItems(out SteamInventoryResult_t pResultHandle, SteamItemDef_t[] pArrayGenerate, uint[] punArrayGenerateQuantity, uint unArrayGenerateLength, SteamItemInstanceID_t[] pArrayDestroy, uint[] punArrayDestroyQuantity, uint unArrayDestroyLength) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_ExchangeItems(CSteamAPIContext.GetSteamInventory(), out pResultHandle, pArrayGenerate, punArrayGenerateQuantity, unArrayGenerateLength, pArrayDestroy, punArrayDestroyQuantity, unArrayDestroyLength); - } - - /// <summary> - /// <para> TransferItemQuantity() is intended for use with items which are "stackable" (can have</para> - /// <para> quantity greater than one). It can be used to split a stack into two, or to transfer</para> - /// <para> quantity from one stack into another stack of identical items. To split one stack into</para> - /// <para> two, pass k_SteamItemInstanceIDInvalid for itemIdDest and a new item will be generated.</para> - /// </summary> - public static bool TransferItemQuantity(out SteamInventoryResult_t pResultHandle, SteamItemInstanceID_t itemIdSource, uint unQuantity, SteamItemInstanceID_t itemIdDest) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_TransferItemQuantity(CSteamAPIContext.GetSteamInventory(), out pResultHandle, itemIdSource, unQuantity, itemIdDest); - } - - /// <summary> - /// <para> TIMED DROPS AND PLAYTIME CREDIT</para> - /// <para> Deprecated. Calling this method is not required for proper playtime accounting.</para> - /// </summary> - public static void SendItemDropHeartbeat() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamInventory_SendItemDropHeartbeat(CSteamAPIContext.GetSteamInventory()); - } - - /// <summary> - /// <para> Playtime credit must be consumed and turned into item drops by your game. Only item</para> - /// <para> definitions which are marked as "playtime item generators" can be spawned. The call</para> - /// <para> will return an empty result set if there is not enough playtime credit for a drop.</para> - /// <para> Your game should call TriggerItemDrop at an appropriate time for the user to receive</para> - /// <para> new items, such as between rounds or while the player is dead. Note that players who</para> - /// <para> hack their clients could modify the value of "dropListDefinition", so do not use it</para> - /// <para> to directly control rarity.</para> - /// <para> See your Steamworks configuration to set playtime drop rates for individual itemdefs.</para> - /// <para> The client library will suppress too-frequent calls to this method.</para> - /// </summary> - public static bool TriggerItemDrop(out SteamInventoryResult_t pResultHandle, SteamItemDef_t dropListDefinition) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_TriggerItemDrop(CSteamAPIContext.GetSteamInventory(), out pResultHandle, dropListDefinition); - } - - /// <summary> - /// <para> Deprecated. This method is not supported.</para> - /// </summary> - public static bool TradeItems(out SteamInventoryResult_t pResultHandle, CSteamID steamIDTradePartner, SteamItemInstanceID_t[] pArrayGive, uint[] pArrayGiveQuantity, uint nArrayGiveLength, SteamItemInstanceID_t[] pArrayGet, uint[] pArrayGetQuantity, uint nArrayGetLength) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_TradeItems(CSteamAPIContext.GetSteamInventory(), out pResultHandle, steamIDTradePartner, pArrayGive, pArrayGiveQuantity, nArrayGiveLength, pArrayGet, pArrayGetQuantity, nArrayGetLength); - } - - /// <summary> - /// <para> ITEM DEFINITIONS</para> - /// <para> Item definitions are a mapping of "definition IDs" (integers between 1 and 1000000)</para> - /// <para> to a set of string properties. Some of these properties are required to display items</para> - /// <para> on the Steam community web site. Other properties can be defined by applications.</para> - /// <para> Use of these functions is optional; there is no reason to call LoadItemDefinitions</para> - /// <para> if your game hardcodes the numeric definition IDs (eg, purple face mask = 20, blue</para> - /// <para> weapon mod = 55) and does not allow for adding new item types without a client patch.</para> - /// <para> LoadItemDefinitions triggers the automatic load and refresh of item definitions.</para> - /// <para> Every time new item definitions are available (eg, from the dynamic addition of new</para> - /// <para> item types while players are still in-game), a SteamInventoryDefinitionUpdate_t</para> - /// <para> callback will be fired.</para> - /// </summary> - public static bool LoadItemDefinitions() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_LoadItemDefinitions(CSteamAPIContext.GetSteamInventory()); - } - - /// <summary> - /// <para> GetItemDefinitionIDs returns the set of all defined item definition IDs (which are</para> - /// <para> defined via Steamworks configuration, and not necessarily contiguous integers).</para> - /// <para> If pItemDefIDs is null, the call will return true and *punItemDefIDsArraySize will</para> - /// <para> contain the total size necessary for a subsequent call. Otherwise, the call will</para> - /// <para> return false if and only if there is not enough space in the output array.</para> - /// </summary> - public static bool GetItemDefinitionIDs(SteamItemDef_t[] pItemDefIDs, ref uint punItemDefIDsArraySize) { - InteropHelp.TestIfAvailableClient(); - if (pItemDefIDs != null && pItemDefIDs.Length != punItemDefIDsArraySize) { - throw new System.ArgumentException("pItemDefIDs must be the same size as punItemDefIDsArraySize!"); - } - return NativeMethods.ISteamInventory_GetItemDefinitionIDs(CSteamAPIContext.GetSteamInventory(), pItemDefIDs, ref punItemDefIDsArraySize); - } - - /// <summary> - /// <para> GetItemDefinitionProperty returns a string property from a given item definition.</para> - /// <para> Note that some properties (for example, "name") may be localized and will depend</para> - /// <para> on the current Steam language settings (see ISteamApps::GetCurrentGameLanguage).</para> - /// <para> Property names are always composed of ASCII letters, numbers, and/or underscores.</para> - /// <para> Pass a NULL pointer for pchPropertyName to get a comma - separated list of available</para> - /// <para> property names. If pchValueBuffer is NULL, *punValueBufferSize will contain the</para> - /// <para> suggested buffer size. Otherwise it will be the number of bytes actually copied</para> - /// <para> to pchValueBuffer. If the results do not fit in the given buffer, partial</para> - /// <para> results may be copied.</para> - /// </summary> - public static bool GetItemDefinitionProperty(SteamItemDef_t iDefinition, string pchPropertyName, out string pchValueBuffer, ref uint punValueBufferSizeOut) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchValueBuffer2 = Marshal.AllocHGlobal((int)punValueBufferSizeOut); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) { - bool ret = NativeMethods.ISteamInventory_GetItemDefinitionProperty(CSteamAPIContext.GetSteamInventory(), iDefinition, pchPropertyName2, pchValueBuffer2, ref punValueBufferSizeOut); - pchValueBuffer = ret ? InteropHelp.PtrToStringUTF8(pchValueBuffer2) : null; - Marshal.FreeHGlobal(pchValueBuffer2); - return ret; - } - } - - /// <summary> - /// <para> Request the list of "eligible" promo items that can be manually granted to the given</para> - /// <para> user. These are promo items of type "manual" that won't be granted automatically.</para> - /// <para> An example usage of this is an item that becomes available every week.</para> - /// </summary> - public static SteamAPICall_t RequestEligiblePromoItemDefinitionsIDs(CSteamID steamID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamInventory_RequestEligiblePromoItemDefinitionsIDs(CSteamAPIContext.GetSteamInventory(), steamID); - } - - /// <summary> - /// <para> After handling a SteamInventoryEligiblePromoItemDefIDs_t call result, use this</para> - /// <para> function to pull out the list of item definition ids that the user can be</para> - /// <para> manually granted via the AddPromoItems() call.</para> - /// </summary> - public static bool GetEligiblePromoItemDefinitionIDs(CSteamID steamID, SteamItemDef_t[] pItemDefIDs, ref uint punItemDefIDsArraySize) { - InteropHelp.TestIfAvailableClient(); - if (pItemDefIDs != null && pItemDefIDs.Length != punItemDefIDsArraySize) { - throw new System.ArgumentException("pItemDefIDs must be the same size as punItemDefIDsArraySize!"); - } - return NativeMethods.ISteamInventory_GetEligiblePromoItemDefinitionIDs(CSteamAPIContext.GetSteamInventory(), steamID, pItemDefIDs, ref punItemDefIDsArraySize); - } - - /// <summary> - /// <para> Starts the purchase process for the given item definitions. The callback SteamInventoryStartPurchaseResult_t</para> - /// <para> will be posted if Steam was able to initialize the transaction.</para> - /// <para> Once the purchase has been authorized and completed by the user, the callback SteamInventoryResultReady_t</para> - /// <para> will be posted.</para> - /// </summary> - public static SteamAPICall_t StartPurchase(SteamItemDef_t[] pArrayItemDefs, uint[] punArrayQuantity, uint unArrayLength) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamInventory_StartPurchase(CSteamAPIContext.GetSteamInventory(), pArrayItemDefs, punArrayQuantity, unArrayLength); - } - - /// <summary> - /// <para> Request current prices for all applicable item definitions</para> - /// </summary> - public static SteamAPICall_t RequestPrices() { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamInventory_RequestPrices(CSteamAPIContext.GetSteamInventory()); - } - - /// <summary> - /// <para> Returns the number of items with prices. Need to call RequestPrices() first.</para> - /// </summary> - public static uint GetNumItemsWithPrices() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_GetNumItemsWithPrices(CSteamAPIContext.GetSteamInventory()); - } - - /// <summary> - /// <para> Returns item definition ids and their prices in the user's local currency.</para> - /// <para> Need to call RequestPrices() first.</para> - /// </summary> - public static bool GetItemsWithPrices(SteamItemDef_t[] pArrayItemDefs, ulong[] pCurrentPrices, ulong[] pBasePrices, uint unArrayLength) { - InteropHelp.TestIfAvailableClient(); - if (pArrayItemDefs != null && pArrayItemDefs.Length != unArrayLength) { - throw new System.ArgumentException("pArrayItemDefs must be the same size as unArrayLength!"); - } - if (pCurrentPrices != null && pCurrentPrices.Length != unArrayLength) { - throw new System.ArgumentException("pCurrentPrices must be the same size as unArrayLength!"); - } - if (pBasePrices != null && pBasePrices.Length != unArrayLength) { - throw new System.ArgumentException("pBasePrices must be the same size as unArrayLength!"); - } - return NativeMethods.ISteamInventory_GetItemsWithPrices(CSteamAPIContext.GetSteamInventory(), pArrayItemDefs, pCurrentPrices, pBasePrices, unArrayLength); - } - - /// <summary> - /// <para> Retrieves the price for the item definition id</para> - /// <para> Returns false if there is no price stored for the item definition.</para> - /// </summary> - public static bool GetItemPrice(SteamItemDef_t iDefinition, out ulong pCurrentPrice, out ulong pBasePrice) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_GetItemPrice(CSteamAPIContext.GetSteamInventory(), iDefinition, out pCurrentPrice, out pBasePrice); - } - - /// <summary> - /// <para> Create a request to update properties on items</para> - /// </summary> - public static SteamInventoryUpdateHandle_t StartUpdateProperties() { - InteropHelp.TestIfAvailableClient(); - return (SteamInventoryUpdateHandle_t)NativeMethods.ISteamInventory_StartUpdateProperties(CSteamAPIContext.GetSteamInventory()); - } - - /// <summary> - /// <para> Remove the property on the item</para> - /// </summary> - public static bool RemoveProperty(SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, string pchPropertyName) { - InteropHelp.TestIfAvailableClient(); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) { - return NativeMethods.ISteamInventory_RemoveProperty(CSteamAPIContext.GetSteamInventory(), handle, nItemID, pchPropertyName2); - } - } - - /// <summary> - /// <para> Accessor methods to set properties on items</para> - /// </summary> - public static bool SetProperty(SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, string pchPropertyName, string pchPropertyValue) { - InteropHelp.TestIfAvailableClient(); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) - using (var pchPropertyValue2 = new InteropHelp.UTF8StringHandle(pchPropertyValue)) { - return NativeMethods.ISteamInventory_SetPropertyString(CSteamAPIContext.GetSteamInventory(), handle, nItemID, pchPropertyName2, pchPropertyValue2); - } - } - - public static bool SetProperty(SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, string pchPropertyName, bool bValue) { - InteropHelp.TestIfAvailableClient(); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) { - return NativeMethods.ISteamInventory_SetPropertyBool(CSteamAPIContext.GetSteamInventory(), handle, nItemID, pchPropertyName2, bValue); - } - } - - public static bool SetProperty(SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, string pchPropertyName, long nValue) { - InteropHelp.TestIfAvailableClient(); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) { - return NativeMethods.ISteamInventory_SetPropertyInt64(CSteamAPIContext.GetSteamInventory(), handle, nItemID, pchPropertyName2, nValue); - } - } - - public static bool SetProperty(SteamInventoryUpdateHandle_t handle, SteamItemInstanceID_t nItemID, string pchPropertyName, float flValue) { - InteropHelp.TestIfAvailableClient(); - using (var pchPropertyName2 = new InteropHelp.UTF8StringHandle(pchPropertyName)) { - return NativeMethods.ISteamInventory_SetPropertyFloat(CSteamAPIContext.GetSteamInventory(), handle, nItemID, pchPropertyName2, flValue); - } - } - - /// <summary> - /// <para> Submit the update request by handle</para> - /// </summary> - public static bool SubmitUpdateProperties(SteamInventoryUpdateHandle_t handle, out SteamInventoryResult_t pResultHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamInventory_SubmitUpdateProperties(CSteamAPIContext.GetSteamInventory(), handle, out pResultHandle); - } - - public static bool InspectItem(out SteamInventoryResult_t pResultHandle, string pchItemToken) { - InteropHelp.TestIfAvailableClient(); - using (var pchItemToken2 = new InteropHelp.UTF8StringHandle(pchItemToken)) { - return NativeMethods.ISteamInventory_InspectItem(CSteamAPIContext.GetSteamInventory(), out pResultHandle, pchItemToken2); - } - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminventory.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminventory.cs.meta deleted file mode 100644 index b48cef6..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteaminventory.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b3cb110b82106574b8dca4e5a56bbb3e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammatchmaking.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammatchmaking.cs deleted file mode 100644 index 5945345..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammatchmaking.cs +++ /dev/null @@ -1,892 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamMatchmaking { - /// <summary> - /// <para> game server favorites storage</para> - /// <para> saves basic details about a multiplayer game server locally</para> - /// <para> returns the number of favorites servers the user has stored</para> - /// </summary> - public static int GetFavoriteGameCount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_GetFavoriteGameCount(CSteamAPIContext.GetSteamMatchmaking()); - } - - /// <summary> - /// <para> returns the details of the game server</para> - /// <para> iGame is of range [0,GetFavoriteGameCount())</para> - /// <para> *pnIP, *pnConnPort are filled in the with IP:port of the game server</para> - /// <para> *punFlags specify whether the game server was stored as an explicit favorite or in the history of connections</para> - /// <para> *pRTime32LastPlayedOnServer is filled in the with the Unix time the favorite was added</para> - /// </summary> - public static bool GetFavoriteGame(int iGame, out AppId_t pnAppID, out uint pnIP, out ushort pnConnPort, out ushort pnQueryPort, out uint punFlags, out uint pRTime32LastPlayedOnServer) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_GetFavoriteGame(CSteamAPIContext.GetSteamMatchmaking(), iGame, out pnAppID, out pnIP, out pnConnPort, out pnQueryPort, out punFlags, out pRTime32LastPlayedOnServer); - } - - /// <summary> - /// <para> adds the game server to the local list; updates the time played of the server if it already exists in the list</para> - /// </summary> - public static int AddFavoriteGame(AppId_t nAppID, uint nIP, ushort nConnPort, ushort nQueryPort, uint unFlags, uint rTime32LastPlayedOnServer) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_AddFavoriteGame(CSteamAPIContext.GetSteamMatchmaking(), nAppID, nIP, nConnPort, nQueryPort, unFlags, rTime32LastPlayedOnServer); - } - - /// <summary> - /// <para> removes the game server from the local storage; returns true if one was removed</para> - /// </summary> - public static bool RemoveFavoriteGame(AppId_t nAppID, uint nIP, ushort nConnPort, ushort nQueryPort, uint unFlags) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_RemoveFavoriteGame(CSteamAPIContext.GetSteamMatchmaking(), nAppID, nIP, nConnPort, nQueryPort, unFlags); - } - - /// <summary> - /// <para>/////</para> - /// <para> Game lobby functions</para> - /// <para> Get a list of relevant lobbies</para> - /// <para> this is an asynchronous request</para> - /// <para> results will be returned by LobbyMatchList_t callback & call result, with the number of lobbies found</para> - /// <para> this will never return lobbies that are full</para> - /// <para> to add more filter, the filter calls below need to be call before each and every RequestLobbyList() call</para> - /// <para> use the CCallResult<> object in steam_api.h to match the SteamAPICall_t call result to a function in an object, e.g.</para> - /// <para> class CMyLobbyListManager</para> - /// <para> {</para> - /// <para> CCallResult<CMyLobbyListManager, LobbyMatchList_t> m_CallResultLobbyMatchList;</para> - /// <para> void FindLobbies()</para> - /// <para> {</para> - /// <para> // SteamMatchmaking()->AddRequestLobbyListFilter*() functions would be called here, before RequestLobbyList()</para> - /// <para> SteamAPICall_t hSteamAPICall = SteamMatchmaking()->RequestLobbyList();</para> - /// <para> m_CallResultLobbyMatchList.Set( hSteamAPICall, this, &CMyLobbyListManager::OnLobbyMatchList );</para> - /// <para> }</para> - /// <para> void OnLobbyMatchList( LobbyMatchList_t *pLobbyMatchList, bool bIOFailure )</para> - /// <para> {</para> - /// <para> // lobby list has be retrieved from Steam back-end, use results</para> - /// <para> }</para> - /// <para> }</para> - /// </summary> - public static SteamAPICall_t RequestLobbyList() { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamMatchmaking_RequestLobbyList(CSteamAPIContext.GetSteamMatchmaking()); - } - - /// <summary> - /// <para> filters for lobbies</para> - /// <para> this needs to be called before RequestLobbyList() to take effect</para> - /// <para> these are cleared on each call to RequestLobbyList()</para> - /// </summary> - public static void AddRequestLobbyListStringFilter(string pchKeyToMatch, string pchValueToMatch, ELobbyComparison eComparisonType) { - InteropHelp.TestIfAvailableClient(); - using (var pchKeyToMatch2 = new InteropHelp.UTF8StringHandle(pchKeyToMatch)) - using (var pchValueToMatch2 = new InteropHelp.UTF8StringHandle(pchValueToMatch)) { - NativeMethods.ISteamMatchmaking_AddRequestLobbyListStringFilter(CSteamAPIContext.GetSteamMatchmaking(), pchKeyToMatch2, pchValueToMatch2, eComparisonType); - } - } - - /// <summary> - /// <para> numerical comparison</para> - /// </summary> - public static void AddRequestLobbyListNumericalFilter(string pchKeyToMatch, int nValueToMatch, ELobbyComparison eComparisonType) { - InteropHelp.TestIfAvailableClient(); - using (var pchKeyToMatch2 = new InteropHelp.UTF8StringHandle(pchKeyToMatch)) { - NativeMethods.ISteamMatchmaking_AddRequestLobbyListNumericalFilter(CSteamAPIContext.GetSteamMatchmaking(), pchKeyToMatch2, nValueToMatch, eComparisonType); - } - } - - /// <summary> - /// <para> returns results closest to the specified value. Multiple near filters can be added, with early filters taking precedence</para> - /// </summary> - public static void AddRequestLobbyListNearValueFilter(string pchKeyToMatch, int nValueToBeCloseTo) { - InteropHelp.TestIfAvailableClient(); - using (var pchKeyToMatch2 = new InteropHelp.UTF8StringHandle(pchKeyToMatch)) { - NativeMethods.ISteamMatchmaking_AddRequestLobbyListNearValueFilter(CSteamAPIContext.GetSteamMatchmaking(), pchKeyToMatch2, nValueToBeCloseTo); - } - } - - /// <summary> - /// <para> returns only lobbies with the specified number of slots available</para> - /// </summary> - public static void AddRequestLobbyListFilterSlotsAvailable(int nSlotsAvailable) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(CSteamAPIContext.GetSteamMatchmaking(), nSlotsAvailable); - } - - /// <summary> - /// <para> sets the distance for which we should search for lobbies (based on users IP address to location map on the Steam backed)</para> - /// </summary> - public static void AddRequestLobbyListDistanceFilter(ELobbyDistanceFilter eLobbyDistanceFilter) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMatchmaking_AddRequestLobbyListDistanceFilter(CSteamAPIContext.GetSteamMatchmaking(), eLobbyDistanceFilter); - } - - /// <summary> - /// <para> sets how many results to return, the lower the count the faster it is to download the lobby results & details to the client</para> - /// </summary> - public static void AddRequestLobbyListResultCountFilter(int cMaxResults) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMatchmaking_AddRequestLobbyListResultCountFilter(CSteamAPIContext.GetSteamMatchmaking(), cMaxResults); - } - - public static void AddRequestLobbyListCompatibleMembersFilter(CSteamID steamIDLobby) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby); - } - - /// <summary> - /// <para> returns the CSteamID of a lobby, as retrieved by a RequestLobbyList call</para> - /// <para> should only be called after a LobbyMatchList_t callback is received</para> - /// <para> iLobby is of the range [0, LobbyMatchList_t::m_nLobbiesMatching)</para> - /// <para> the returned CSteamID::IsValid() will be false if iLobby is out of range</para> - /// </summary> - public static CSteamID GetLobbyByIndex(int iLobby) { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamMatchmaking_GetLobbyByIndex(CSteamAPIContext.GetSteamMatchmaking(), iLobby); - } - - /// <summary> - /// <para> Create a lobby on the Steam servers.</para> - /// <para> If private, then the lobby will not be returned by any RequestLobbyList() call; the CSteamID</para> - /// <para> of the lobby will need to be communicated via game channels or via InviteUserToLobby()</para> - /// <para> this is an asynchronous request</para> - /// <para> results will be returned by LobbyCreated_t callback and call result; lobby is joined & ready to use at this point</para> - /// <para> a LobbyEnter_t callback will also be received (since the local user is joining their own lobby)</para> - /// </summary> - public static SteamAPICall_t CreateLobby(ELobbyType eLobbyType, int cMaxMembers) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamMatchmaking_CreateLobby(CSteamAPIContext.GetSteamMatchmaking(), eLobbyType, cMaxMembers); - } - - /// <summary> - /// <para> Joins an existing lobby</para> - /// <para> this is an asynchronous request</para> - /// <para> results will be returned by LobbyEnter_t callback & call result, check m_EChatRoomEnterResponse to see if was successful</para> - /// <para> lobby metadata is available to use immediately on this call completing</para> - /// </summary> - public static SteamAPICall_t JoinLobby(CSteamID steamIDLobby) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamMatchmaking_JoinLobby(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby); - } - - /// <summary> - /// <para> Leave a lobby; this will take effect immediately on the client side</para> - /// <para> other users in the lobby will be notified by a LobbyChatUpdate_t callback</para> - /// </summary> - public static void LeaveLobby(CSteamID steamIDLobby) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMatchmaking_LeaveLobby(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby); - } - - /// <summary> - /// <para> Invite another user to the lobby</para> - /// <para> the target user will receive a LobbyInvite_t callback</para> - /// <para> will return true if the invite is successfully sent, whether or not the target responds</para> - /// <para> returns false if the local user is not connected to the Steam servers</para> - /// <para> if the other user clicks the join link, a GameLobbyJoinRequested_t will be posted if the user is in-game,</para> - /// <para> or if the game isn't running yet the game will be launched with the parameter +connect_lobby <64-bit lobby id></para> - /// </summary> - public static bool InviteUserToLobby(CSteamID steamIDLobby, CSteamID steamIDInvitee) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_InviteUserToLobby(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, steamIDInvitee); - } - - /// <summary> - /// <para> Lobby iteration, for viewing details of users in a lobby</para> - /// <para> only accessible if the lobby user is a member of the specified lobby</para> - /// <para> persona information for other lobby members (name, avatar, etc.) will be asynchronously received</para> - /// <para> and accessible via ISteamFriends interface</para> - /// <para> returns the number of users in the specified lobby</para> - /// </summary> - public static int GetNumLobbyMembers(CSteamID steamIDLobby) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_GetNumLobbyMembers(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby); - } - - /// <summary> - /// <para> returns the CSteamID of a user in the lobby</para> - /// <para> iMember is of range [0,GetNumLobbyMembers())</para> - /// <para> note that the current user must be in a lobby to retrieve CSteamIDs of other users in that lobby</para> - /// </summary> - public static CSteamID GetLobbyMemberByIndex(CSteamID steamIDLobby, int iMember) { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamMatchmaking_GetLobbyMemberByIndex(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, iMember); - } - - /// <summary> - /// <para> Get data associated with this lobby</para> - /// <para> takes a simple key, and returns the string associated with it</para> - /// <para> "" will be returned if no value is set, or if steamIDLobby is invalid</para> - /// </summary> - public static string GetLobbyData(CSteamID steamIDLobby, string pchKey) { - InteropHelp.TestIfAvailableClient(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) { - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamMatchmaking_GetLobbyData(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, pchKey2)); - } - } - - /// <summary> - /// <para> Sets a key/value pair in the lobby metadata</para> - /// <para> each user in the lobby will be broadcast this new value, and any new users joining will receive any existing data</para> - /// <para> this can be used to set lobby names, map, etc.</para> - /// <para> to reset a key, just set it to ""</para> - /// <para> other users in the lobby will receive notification of the lobby data change via a LobbyDataUpdate_t callback</para> - /// </summary> - public static bool SetLobbyData(CSteamID steamIDLobby, string pchKey, string pchValue) { - InteropHelp.TestIfAvailableClient(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) - using (var pchValue2 = new InteropHelp.UTF8StringHandle(pchValue)) { - return NativeMethods.ISteamMatchmaking_SetLobbyData(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, pchKey2, pchValue2); - } - } - - /// <summary> - /// <para> returns the number of metadata keys set on the specified lobby</para> - /// </summary> - public static int GetLobbyDataCount(CSteamID steamIDLobby) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_GetLobbyDataCount(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby); - } - - /// <summary> - /// <para> returns a lobby metadata key/values pair by index, of range [0, GetLobbyDataCount())</para> - /// </summary> - public static bool GetLobbyDataByIndex(CSteamID steamIDLobby, int iLobbyData, out string pchKey, int cchKeyBufferSize, out string pchValue, int cchValueBufferSize) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchKey2 = Marshal.AllocHGlobal(cchKeyBufferSize); - IntPtr pchValue2 = Marshal.AllocHGlobal(cchValueBufferSize); - bool ret = NativeMethods.ISteamMatchmaking_GetLobbyDataByIndex(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, iLobbyData, pchKey2, cchKeyBufferSize, pchValue2, cchValueBufferSize); - pchKey = ret ? InteropHelp.PtrToStringUTF8(pchKey2) : null; - Marshal.FreeHGlobal(pchKey2); - pchValue = ret ? InteropHelp.PtrToStringUTF8(pchValue2) : null; - Marshal.FreeHGlobal(pchValue2); - return ret; - } - - /// <summary> - /// <para> removes a metadata key from the lobby</para> - /// </summary> - public static bool DeleteLobbyData(CSteamID steamIDLobby, string pchKey) { - InteropHelp.TestIfAvailableClient(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) { - return NativeMethods.ISteamMatchmaking_DeleteLobbyData(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, pchKey2); - } - } - - /// <summary> - /// <para> Gets per-user metadata for someone in this lobby</para> - /// </summary> - public static string GetLobbyMemberData(CSteamID steamIDLobby, CSteamID steamIDUser, string pchKey) { - InteropHelp.TestIfAvailableClient(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) { - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamMatchmaking_GetLobbyMemberData(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, steamIDUser, pchKey2)); - } - } - - /// <summary> - /// <para> Sets per-user metadata (for the local user implicitly)</para> - /// </summary> - public static void SetLobbyMemberData(CSteamID steamIDLobby, string pchKey, string pchValue) { - InteropHelp.TestIfAvailableClient(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) - using (var pchValue2 = new InteropHelp.UTF8StringHandle(pchValue)) { - NativeMethods.ISteamMatchmaking_SetLobbyMemberData(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, pchKey2, pchValue2); - } - } - - /// <summary> - /// <para> Broadcasts a chat message to the all the users in the lobby</para> - /// <para> users in the lobby (including the local user) will receive a LobbyChatMsg_t callback</para> - /// <para> returns true if the message is successfully sent</para> - /// <para> pvMsgBody can be binary or text data, up to 4k</para> - /// <para> if pvMsgBody is text, cubMsgBody should be strlen( text ) + 1, to include the null terminator</para> - /// </summary> - public static bool SendLobbyChatMsg(CSteamID steamIDLobby, byte[] pvMsgBody, int cubMsgBody) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_SendLobbyChatMsg(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, pvMsgBody, cubMsgBody); - } - - /// <summary> - /// <para> Get a chat message as specified in a LobbyChatMsg_t callback</para> - /// <para> iChatID is the LobbyChatMsg_t::m_iChatID value in the callback</para> - /// <para> *pSteamIDUser is filled in with the CSteamID of the member</para> - /// <para> *pvData is filled in with the message itself</para> - /// <para> return value is the number of bytes written into the buffer</para> - /// </summary> - public static int GetLobbyChatEntry(CSteamID steamIDLobby, int iChatID, out CSteamID pSteamIDUser, byte[] pvData, int cubData, out EChatEntryType peChatEntryType) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_GetLobbyChatEntry(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, iChatID, out pSteamIDUser, pvData, cubData, out peChatEntryType); - } - - /// <summary> - /// <para> Refreshes metadata for a lobby you're not necessarily in right now</para> - /// <para> you never do this for lobbies you're a member of, only if your</para> - /// <para> this will send down all the metadata associated with a lobby</para> - /// <para> this is an asynchronous call</para> - /// <para> returns false if the local user is not connected to the Steam servers</para> - /// <para> results will be returned by a LobbyDataUpdate_t callback</para> - /// <para> if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false</para> - /// </summary> - public static bool RequestLobbyData(CSteamID steamIDLobby) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_RequestLobbyData(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby); - } - - /// <summary> - /// <para> sets the game server associated with the lobby</para> - /// <para> usually at this point, the users will join the specified game server</para> - /// <para> either the IP/Port or the steamID of the game server has to be valid, depending on how you want the clients to be able to connect</para> - /// </summary> - public static void SetLobbyGameServer(CSteamID steamIDLobby, uint unGameServerIP, ushort unGameServerPort, CSteamID steamIDGameServer) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMatchmaking_SetLobbyGameServer(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, unGameServerIP, unGameServerPort, steamIDGameServer); - } - - /// <summary> - /// <para> returns the details of a game server set in a lobby - returns false if there is no game server set, or that lobby doesn't exist</para> - /// </summary> - public static bool GetLobbyGameServer(CSteamID steamIDLobby, out uint punGameServerIP, out ushort punGameServerPort, out CSteamID psteamIDGameServer) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_GetLobbyGameServer(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, out punGameServerIP, out punGameServerPort, out psteamIDGameServer); - } - - /// <summary> - /// <para> set the limit on the # of users who can join the lobby</para> - /// </summary> - public static bool SetLobbyMemberLimit(CSteamID steamIDLobby, int cMaxMembers) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_SetLobbyMemberLimit(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, cMaxMembers); - } - - /// <summary> - /// <para> returns the current limit on the # of users who can join the lobby; returns 0 if no limit is defined</para> - /// </summary> - public static int GetLobbyMemberLimit(CSteamID steamIDLobby) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_GetLobbyMemberLimit(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby); - } - - /// <summary> - /// <para> updates which type of lobby it is</para> - /// <para> only lobbies that are k_ELobbyTypePublic or k_ELobbyTypeInvisible, and are set to joinable, will be returned by RequestLobbyList() calls</para> - /// </summary> - public static bool SetLobbyType(CSteamID steamIDLobby, ELobbyType eLobbyType) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_SetLobbyType(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, eLobbyType); - } - - /// <summary> - /// <para> sets whether or not a lobby is joinable - defaults to true for a new lobby</para> - /// <para> if set to false, no user can join, even if they are a friend or have been invited</para> - /// </summary> - public static bool SetLobbyJoinable(CSteamID steamIDLobby, bool bLobbyJoinable) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_SetLobbyJoinable(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, bLobbyJoinable); - } - - /// <summary> - /// <para> returns the current lobby owner</para> - /// <para> you must be a member of the lobby to access this</para> - /// <para> there always one lobby owner - if the current owner leaves, another user will become the owner</para> - /// <para> it is possible (bur rare) to join a lobby just as the owner is leaving, thus entering a lobby with self as the owner</para> - /// </summary> - public static CSteamID GetLobbyOwner(CSteamID steamIDLobby) { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamMatchmaking_GetLobbyOwner(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby); - } - - /// <summary> - /// <para> changes who the lobby owner is</para> - /// <para> you must be the lobby owner for this to succeed, and steamIDNewOwner must be in the lobby</para> - /// <para> after completion, the local user will no longer be the owner</para> - /// </summary> - public static bool SetLobbyOwner(CSteamID steamIDLobby, CSteamID steamIDNewOwner) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_SetLobbyOwner(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, steamIDNewOwner); - } - - /// <summary> - /// <para> link two lobbies for the purposes of checking player compatibility</para> - /// <para> you must be the lobby owner of both lobbies</para> - /// </summary> - public static bool SetLinkedLobby(CSteamID steamIDLobby, CSteamID steamIDLobbyDependent) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmaking_SetLinkedLobby(CSteamAPIContext.GetSteamMatchmaking(), steamIDLobby, steamIDLobbyDependent); - } -#if _PS3 - /// <summary> - /// <para> changes who the lobby owner is</para> - /// <para> you must be the lobby owner for this to succeed, and steamIDNewOwner must be in the lobby</para> - /// <para> after completion, the local user will no longer be the owner</para> - /// </summary> - public static void CheckForPSNGameBootInvite(uint iGameBootAttributes) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMatchmaking_CheckForPSNGameBootInvite(CSteamAPIContext.GetSteamMatchmaking(), iGameBootAttributes); - } -#endif - } - public static class SteamMatchmakingServers { - /// <summary> - /// <para> Request a new list of servers of a particular type. These calls each correspond to one of the EMatchMakingType values.</para> - /// <para> Each call allocates a new asynchronous request object.</para> - /// <para> Request object must be released by calling ReleaseRequest( hServerListRequest )</para> - /// </summary> - public static HServerListRequest RequestInternetServerList(AppId_t iApp, MatchMakingKeyValuePair_t[] ppchFilters, uint nFilters, ISteamMatchmakingServerListResponse pRequestServersResponse) { - InteropHelp.TestIfAvailableClient(); - return (HServerListRequest)NativeMethods.ISteamMatchmakingServers_RequestInternetServerList(CSteamAPIContext.GetSteamMatchmakingServers(), iApp, new MMKVPMarshaller(ppchFilters), nFilters, (IntPtr)pRequestServersResponse); - } - - public static HServerListRequest RequestLANServerList(AppId_t iApp, ISteamMatchmakingServerListResponse pRequestServersResponse) { - InteropHelp.TestIfAvailableClient(); - return (HServerListRequest)NativeMethods.ISteamMatchmakingServers_RequestLANServerList(CSteamAPIContext.GetSteamMatchmakingServers(), iApp, (IntPtr)pRequestServersResponse); - } - - public static HServerListRequest RequestFriendsServerList(AppId_t iApp, MatchMakingKeyValuePair_t[] ppchFilters, uint nFilters, ISteamMatchmakingServerListResponse pRequestServersResponse) { - InteropHelp.TestIfAvailableClient(); - return (HServerListRequest)NativeMethods.ISteamMatchmakingServers_RequestFriendsServerList(CSteamAPIContext.GetSteamMatchmakingServers(), iApp, new MMKVPMarshaller(ppchFilters), nFilters, (IntPtr)pRequestServersResponse); - } - - public static HServerListRequest RequestFavoritesServerList(AppId_t iApp, MatchMakingKeyValuePair_t[] ppchFilters, uint nFilters, ISteamMatchmakingServerListResponse pRequestServersResponse) { - InteropHelp.TestIfAvailableClient(); - return (HServerListRequest)NativeMethods.ISteamMatchmakingServers_RequestFavoritesServerList(CSteamAPIContext.GetSteamMatchmakingServers(), iApp, new MMKVPMarshaller(ppchFilters), nFilters, (IntPtr)pRequestServersResponse); - } - - public static HServerListRequest RequestHistoryServerList(AppId_t iApp, MatchMakingKeyValuePair_t[] ppchFilters, uint nFilters, ISteamMatchmakingServerListResponse pRequestServersResponse) { - InteropHelp.TestIfAvailableClient(); - return (HServerListRequest)NativeMethods.ISteamMatchmakingServers_RequestHistoryServerList(CSteamAPIContext.GetSteamMatchmakingServers(), iApp, new MMKVPMarshaller(ppchFilters), nFilters, (IntPtr)pRequestServersResponse); - } - - public static HServerListRequest RequestSpectatorServerList(AppId_t iApp, MatchMakingKeyValuePair_t[] ppchFilters, uint nFilters, ISteamMatchmakingServerListResponse pRequestServersResponse) { - InteropHelp.TestIfAvailableClient(); - return (HServerListRequest)NativeMethods.ISteamMatchmakingServers_RequestSpectatorServerList(CSteamAPIContext.GetSteamMatchmakingServers(), iApp, new MMKVPMarshaller(ppchFilters), nFilters, (IntPtr)pRequestServersResponse); - } - - /// <summary> - /// <para> Releases the asynchronous request object and cancels any pending query on it if there's a pending query in progress.</para> - /// <para> RefreshComplete callback is not posted when request is released.</para> - /// </summary> - public static void ReleaseRequest(HServerListRequest hServerListRequest) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMatchmakingServers_ReleaseRequest(CSteamAPIContext.GetSteamMatchmakingServers(), hServerListRequest); - } - - /// <summary> - /// <para> the filter operation codes that go in the key part of MatchMakingKeyValuePair_t should be one of these:</para> - /// <para> "map"</para> - /// <para> - Server passes the filter if the server is playing the specified map.</para> - /// <para> "gamedataand"</para> - /// <para> - Server passes the filter if the server's game data (ISteamGameServer::SetGameData) contains all of the</para> - /// <para> specified strings. The value field is a comma-delimited list of strings to match.</para> - /// <para> "gamedataor"</para> - /// <para> - Server passes the filter if the server's game data (ISteamGameServer::SetGameData) contains at least one of the</para> - /// <para> specified strings. The value field is a comma-delimited list of strings to match.</para> - /// <para> "gamedatanor"</para> - /// <para> - Server passes the filter if the server's game data (ISteamGameServer::SetGameData) does not contain any</para> - /// <para> of the specified strings. The value field is a comma-delimited list of strings to check.</para> - /// <para> "gametagsand"</para> - /// <para> - Server passes the filter if the server's game tags (ISteamGameServer::SetGameTags) contains all</para> - /// <para> of the specified strings. The value field is a comma-delimited list of strings to check.</para> - /// <para> "gametagsnor"</para> - /// <para> - Server passes the filter if the server's game tags (ISteamGameServer::SetGameTags) does not contain any</para> - /// <para> of the specified strings. The value field is a comma-delimited list of strings to check.</para> - /// <para> "and" (x1 && x2 && ... && xn)</para> - /// <para> "or" (x1 || x2 || ... || xn)</para> - /// <para> "nand" !(x1 && x2 && ... && xn)</para> - /// <para> "nor" !(x1 || x2 || ... || xn)</para> - /// <para> - Performs Boolean operation on the following filters. The operand to this filter specifies</para> - /// <para> the "size" of the Boolean inputs to the operation, in Key/value pairs. (The keyvalue</para> - /// <para> pairs must immediately follow, i.e. this is a prefix logical operator notation.)</para> - /// <para> In the simplest case where Boolean expressions are not nested, this is simply</para> - /// <para> the number of operands.</para> - /// <para> For example, to match servers on a particular map or with a particular tag, would would</para> - /// <para> use these filters.</para> - /// <para> ( server.map == "cp_dustbowl" || server.gametags.contains("payload") )</para> - /// <para> "or", "2"</para> - /// <para> "map", "cp_dustbowl"</para> - /// <para> "gametagsand", "payload"</para> - /// <para> If logical inputs are nested, then the operand specifies the size of the entire</para> - /// <para> "length" of its operands, not the number of immediate children.</para> - /// <para> ( server.map == "cp_dustbowl" || ( server.gametags.contains("payload") && !server.gametags.contains("payloadrace") ) )</para> - /// <para> "or", "4"</para> - /// <para> "map", "cp_dustbowl"</para> - /// <para> "and", "2"</para> - /// <para> "gametagsand", "payload"</para> - /// <para> "gametagsnor", "payloadrace"</para> - /// <para> Unary NOT can be achieved using either "nand" or "nor" with a single operand.</para> - /// <para> "addr"</para> - /// <para> - Server passes the filter if the server's query address matches the specified IP or IP:port.</para> - /// <para> "gameaddr"</para> - /// <para> - Server passes the filter if the server's game address matches the specified IP or IP:port.</para> - /// <para> The following filter operations ignore the "value" part of MatchMakingKeyValuePair_t</para> - /// <para> "dedicated"</para> - /// <para> - Server passes the filter if it passed true to SetDedicatedServer.</para> - /// <para> "secure"</para> - /// <para> - Server passes the filter if the server is VAC-enabled.</para> - /// <para> "notfull"</para> - /// <para> - Server passes the filter if the player count is less than the reported max player count.</para> - /// <para> "hasplayers"</para> - /// <para> - Server passes the filter if the player count is greater than zero.</para> - /// <para> "noplayers"</para> - /// <para> - Server passes the filter if it doesn't have any players.</para> - /// <para> "linux"</para> - /// <para> - Server passes the filter if it's a linux server</para> - /// <para> Get details on a given server in the list, you can get the valid range of index</para> - /// <para> values by calling GetServerCount(). You will also receive index values in</para> - /// <para> ISteamMatchmakingServerListResponse::ServerResponded() callbacks</para> - /// </summary> - public static gameserveritem_t GetServerDetails(HServerListRequest hRequest, int iServer) { - InteropHelp.TestIfAvailableClient(); - return (gameserveritem_t)Marshal.PtrToStructure(NativeMethods.ISteamMatchmakingServers_GetServerDetails(CSteamAPIContext.GetSteamMatchmakingServers(), hRequest, iServer), typeof(gameserveritem_t)); - } - - /// <summary> - /// <para> Cancel an request which is operation on the given list type. You should call this to cancel</para> - /// <para> any in-progress requests before destructing a callback object that may have been passed</para> - /// <para> to one of the above list request calls. Not doing so may result in a crash when a callback</para> - /// <para> occurs on the destructed object.</para> - /// <para> Canceling a query does not release the allocated request handle.</para> - /// <para> The request handle must be released using ReleaseRequest( hRequest )</para> - /// </summary> - public static void CancelQuery(HServerListRequest hRequest) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMatchmakingServers_CancelQuery(CSteamAPIContext.GetSteamMatchmakingServers(), hRequest); - } - - /// <summary> - /// <para> Ping every server in your list again but don't update the list of servers</para> - /// <para> Query callback installed when the server list was requested will be used</para> - /// <para> again to post notifications and RefreshComplete, so the callback must remain</para> - /// <para> valid until another RefreshComplete is called on it or the request</para> - /// <para> is released with ReleaseRequest( hRequest )</para> - /// </summary> - public static void RefreshQuery(HServerListRequest hRequest) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMatchmakingServers_RefreshQuery(CSteamAPIContext.GetSteamMatchmakingServers(), hRequest); - } - - /// <summary> - /// <para> Returns true if the list is currently refreshing its server list</para> - /// </summary> - public static bool IsRefreshing(HServerListRequest hRequest) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmakingServers_IsRefreshing(CSteamAPIContext.GetSteamMatchmakingServers(), hRequest); - } - - /// <summary> - /// <para> How many servers in the given list, GetServerDetails above takes 0... GetServerCount() - 1</para> - /// </summary> - public static int GetServerCount(HServerListRequest hRequest) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMatchmakingServers_GetServerCount(CSteamAPIContext.GetSteamMatchmakingServers(), hRequest); - } - - /// <summary> - /// <para> Refresh a single server inside of a query (rather than all the servers )</para> - /// </summary> - public static void RefreshServer(HServerListRequest hRequest, int iServer) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMatchmakingServers_RefreshServer(CSteamAPIContext.GetSteamMatchmakingServers(), hRequest, iServer); - } - - /// <summary> - /// <para>-----------------------------------------------------------------------------</para> - /// <para> Queries to individual servers directly via IP/Port</para> - /// <para>-----------------------------------------------------------------------------</para> - /// <para> Request updated ping time and other details from a single server</para> - /// </summary> - public static HServerQuery PingServer(uint unIP, ushort usPort, ISteamMatchmakingPingResponse pRequestServersResponse) { - InteropHelp.TestIfAvailableClient(); - return (HServerQuery)NativeMethods.ISteamMatchmakingServers_PingServer(CSteamAPIContext.GetSteamMatchmakingServers(), unIP, usPort, (IntPtr)pRequestServersResponse); - } - - /// <summary> - /// <para> Request the list of players currently playing on a server</para> - /// </summary> - public static HServerQuery PlayerDetails(uint unIP, ushort usPort, ISteamMatchmakingPlayersResponse pRequestServersResponse) { - InteropHelp.TestIfAvailableClient(); - return (HServerQuery)NativeMethods.ISteamMatchmakingServers_PlayerDetails(CSteamAPIContext.GetSteamMatchmakingServers(), unIP, usPort, (IntPtr)pRequestServersResponse); - } - - /// <summary> - /// <para> Request the list of rules that the server is running (See ISteamGameServer::SetKeyValue() to set the rules server side)</para> - /// </summary> - public static HServerQuery ServerRules(uint unIP, ushort usPort, ISteamMatchmakingRulesResponse pRequestServersResponse) { - InteropHelp.TestIfAvailableClient(); - return (HServerQuery)NativeMethods.ISteamMatchmakingServers_ServerRules(CSteamAPIContext.GetSteamMatchmakingServers(), unIP, usPort, (IntPtr)pRequestServersResponse); - } - - /// <summary> - /// <para> Cancel an outstanding Ping/Players/Rules query from above. You should call this to cancel</para> - /// <para> any in-progress requests before destructing a callback object that may have been passed</para> - /// <para> to one of the above calls to avoid crashing when callbacks occur.</para> - /// </summary> - public static void CancelServerQuery(HServerQuery hServerQuery) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMatchmakingServers_CancelServerQuery(CSteamAPIContext.GetSteamMatchmakingServers(), hServerQuery); - } - } - public static class SteamGameSearch { - /// <summary> - /// <para> =============================================================================================</para> - /// <para> Game Player APIs</para> - /// <para> a keyname and a list of comma separated values: one of which is must be found in order for the match to qualify</para> - /// <para> fails if a search is currently in progress</para> - /// </summary> - public static EGameSearchErrorCode_t AddGameSearchParams(string pchKeyToFind, string pchValuesToFind) { - InteropHelp.TestIfAvailableClient(); - using (var pchKeyToFind2 = new InteropHelp.UTF8StringHandle(pchKeyToFind)) - using (var pchValuesToFind2 = new InteropHelp.UTF8StringHandle(pchValuesToFind)) { - return NativeMethods.ISteamGameSearch_AddGameSearchParams(CSteamAPIContext.GetSteamGameSearch(), pchKeyToFind2, pchValuesToFind2); - } - } - - /// <summary> - /// <para> all players in lobby enter the queue and await a SearchForGameNotificationCallback_t callback. fails if another search is currently in progress</para> - /// <para> if not the owner of the lobby or search already in progress this call fails</para> - /// <para> periodic callbacks will be sent as queue time estimates change</para> - /// </summary> - public static EGameSearchErrorCode_t SearchForGameWithLobby(CSteamID steamIDLobby, int nPlayerMin, int nPlayerMax) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamGameSearch_SearchForGameWithLobby(CSteamAPIContext.GetSteamGameSearch(), steamIDLobby, nPlayerMin, nPlayerMax); - } - - /// <summary> - /// <para> user enter the queue and await a SearchForGameNotificationCallback_t callback. fails if another search is currently in progress</para> - /// <para> periodic callbacks will be sent as queue time estimates change</para> - /// </summary> - public static EGameSearchErrorCode_t SearchForGameSolo(int nPlayerMin, int nPlayerMax) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamGameSearch_SearchForGameSolo(CSteamAPIContext.GetSteamGameSearch(), nPlayerMin, nPlayerMax); - } - - /// <summary> - /// <para> after receiving SearchForGameResultCallback_t, accept or decline the game</para> - /// <para> multiple SearchForGameResultCallback_t will follow as players accept game until the host starts or cancels the game</para> - /// </summary> - 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()); - } - - /// <summary> - /// <para> after receiving GameStartedByHostCallback_t get connection details to server</para> - /// </summary> - public static EGameSearchErrorCode_t RetrieveConnectionDetails(CSteamID steamIDHost, out string pchConnectionDetails, int cubConnectionDetails) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchConnectionDetails2 = Marshal.AllocHGlobal(cubConnectionDetails); - EGameSearchErrorCode_t ret = NativeMethods.ISteamGameSearch_RetrieveConnectionDetails(CSteamAPIContext.GetSteamGameSearch(), steamIDHost, pchConnectionDetails2, cubConnectionDetails); - pchConnectionDetails = ret != 0 ? InteropHelp.PtrToStringUTF8(pchConnectionDetails2) : null; - Marshal.FreeHGlobal(pchConnectionDetails2); - return ret; - } - - /// <summary> - /// <para> leaves queue if still waiting</para> - /// </summary> - public static EGameSearchErrorCode_t EndGameSearch() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamGameSearch_EndGameSearch(CSteamAPIContext.GetSteamGameSearch()); - } - - /// <summary> - /// <para> =============================================================================================</para> - /// <para> Game Host APIs</para> - /// <para> a keyname and a list of comma separated values: all the values you allow</para> - /// </summary> - public static EGameSearchErrorCode_t SetGameHostParams(string pchKey, string pchValue) { - InteropHelp.TestIfAvailableClient(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) - using (var pchValue2 = new InteropHelp.UTF8StringHandle(pchValue)) { - return NativeMethods.ISteamGameSearch_SetGameHostParams(CSteamAPIContext.GetSteamGameSearch(), pchKey2, pchValue2); - } - } - - /// <summary> - /// <para> set connection details for players once game is found so they can connect to this server</para> - /// </summary> - public static EGameSearchErrorCode_t SetConnectionDetails(string pchConnectionDetails, int cubConnectionDetails) { - InteropHelp.TestIfAvailableClient(); - using (var pchConnectionDetails2 = new InteropHelp.UTF8StringHandle(pchConnectionDetails)) { - return NativeMethods.ISteamGameSearch_SetConnectionDetails(CSteamAPIContext.GetSteamGameSearch(), pchConnectionDetails2, cubConnectionDetails); - } - } - - /// <summary> - /// <para> mark server as available for more players with nPlayerMin,nPlayerMax desired</para> - /// <para> accept no lobbies with playercount greater than nMaxTeamSize</para> - /// <para> the set of lobbies returned must be partitionable into teams of no more than nMaxTeamSize</para> - /// <para> RequestPlayersForGameNotificationCallback_t callback will be sent when the search has started</para> - /// <para> multple RequestPlayersForGameResultCallback_t callbacks will follow when players are found</para> - /// </summary> - public static EGameSearchErrorCode_t RequestPlayersForGame(int nPlayerMin, int nPlayerMax, int nMaxTeamSize) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamGameSearch_RequestPlayersForGame(CSteamAPIContext.GetSteamGameSearch(), nPlayerMin, nPlayerMax, nMaxTeamSize); - } - - /// <summary> - /// <para> accept the player list and release connection details to players</para> - /// <para> players will only be given connection details and host steamid when this is called</para> - /// <para> ( allows host to accept after all players confirm, some confirm, or none confirm. decision is entirely up to the host )</para> - /// </summary> - public static EGameSearchErrorCode_t HostConfirmGameStart(ulong ullUniqueGameID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamGameSearch_HostConfirmGameStart(CSteamAPIContext.GetSteamGameSearch(), ullUniqueGameID); - } - - /// <summary> - /// <para> cancel request and leave the pool of game hosts looking for players</para> - /// <para> if a set of players has already been sent to host, all players will receive SearchForGameHostFailedToConfirm_t</para> - /// </summary> - public static EGameSearchErrorCode_t CancelRequestPlayersForGame() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamGameSearch_CancelRequestPlayersForGame(CSteamAPIContext.GetSteamGameSearch()); - } - - /// <summary> - /// <para> submit a result for one player. does not end the game. ullUniqueGameID continues to describe this game</para> - /// </summary> - public static EGameSearchErrorCode_t SubmitPlayerResult(ulong ullUniqueGameID, CSteamID steamIDPlayer, EPlayerResult_t EPlayerResult) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamGameSearch_SubmitPlayerResult(CSteamAPIContext.GetSteamGameSearch(), ullUniqueGameID, steamIDPlayer, EPlayerResult); - } - - /// <summary> - /// <para> ends the game. no further SubmitPlayerResults for ullUniqueGameID will be accepted</para> - /// <para> any future requests will provide a new ullUniqueGameID</para> - /// </summary> - public static EGameSearchErrorCode_t EndGame(ulong ullUniqueGameID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamGameSearch_EndGame(CSteamAPIContext.GetSteamGameSearch(), ullUniqueGameID); - } - } - public static class SteamParties { - /// <summary> - /// <para> =============================================================================================</para> - /// <para> Party Client APIs</para> - /// <para> Enumerate any active beacons for parties you may wish to join</para> - /// </summary> - 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 pchMetadata2 = Marshal.AllocHGlobal(cchMetadata); - bool ret = NativeMethods.ISteamParties_GetBeaconDetails(CSteamAPIContext.GetSteamParties(), ulBeaconID, out pSteamIDBeaconOwner, out pLocation, pchMetadata2, cchMetadata); - pchMetadata = ret ? InteropHelp.PtrToStringUTF8(pchMetadata2) : null; - Marshal.FreeHGlobal(pchMetadata2); - return ret; - } - - /// <summary> - /// <para> Join an open party. Steam will reserve one beacon slot for your SteamID,</para> - /// <para> and return the necessary JoinGame string for you to use to connect</para> - /// </summary> - public static SteamAPICall_t JoinParty(PartyBeaconID_t ulBeaconID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamParties_JoinParty(CSteamAPIContext.GetSteamParties(), ulBeaconID); - } - - /// <summary> - /// <para> =============================================================================================</para> - /// <para> Party Host APIs</para> - /// <para> Get a list of possible beacon locations</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> Create a new party beacon and activate it in the selected location.</para> - /// <para> unOpenSlots is the maximum number of users that Steam will send to you.</para> - /// <para> When people begin responding to your beacon, Steam will send you</para> - /// <para> PartyReservationCallback_t callbacks to let you know who is on the way.</para> - /// </summary> - public static SteamAPICall_t CreateBeacon(uint unOpenSlots, ref SteamPartyBeaconLocation_t pBeaconLocation, string pchConnectString, string pchMetadata) { - InteropHelp.TestIfAvailableClient(); - using (var pchConnectString2 = new InteropHelp.UTF8StringHandle(pchConnectString)) - using (var pchMetadata2 = new InteropHelp.UTF8StringHandle(pchMetadata)) { - return (SteamAPICall_t)NativeMethods.ISteamParties_CreateBeacon(CSteamAPIContext.GetSteamParties(), unOpenSlots, ref pBeaconLocation, pchConnectString2, pchMetadata2); - } - } - - /// <summary> - /// <para> Call this function when a user that had a reservation (see callback below)</para> - /// <para> has successfully joined your party.</para> - /// <para> Steam will manage the remaining open slots automatically.</para> - /// </summary> - public static void OnReservationCompleted(PartyBeaconID_t ulBeacon, CSteamID steamIDUser) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamParties_OnReservationCompleted(CSteamAPIContext.GetSteamParties(), ulBeacon, steamIDUser); - } - - /// <summary> - /// <para> To cancel a reservation (due to timeout or user input), call this.</para> - /// <para> Steam will open a new reservation slot.</para> - /// <para> Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party.</para> - /// </summary> - public static void CancelReservation(PartyBeaconID_t ulBeacon, CSteamID steamIDUser) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamParties_CancelReservation(CSteamAPIContext.GetSteamParties(), ulBeacon, steamIDUser); - } - - /// <summary> - /// <para> Change the number of open beacon reservation slots.</para> - /// <para> Call this if, for example, someone without a reservation joins your party (eg a friend, or via your own matchmaking system).</para> - /// </summary> - public static SteamAPICall_t ChangeNumOpenSlots(PartyBeaconID_t ulBeacon, uint unOpenSlots) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamParties_ChangeNumOpenSlots(CSteamAPIContext.GetSteamParties(), ulBeacon, unOpenSlots); - } - - /// <summary> - /// <para> Turn off the beacon.</para> - /// </summary> - public static bool DestroyBeacon(PartyBeaconID_t ulBeacon) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamParties_DestroyBeacon(CSteamAPIContext.GetSteamParties(), ulBeacon); - } - - /// <summary> - /// <para> Utils</para> - /// </summary> - public static bool GetBeaconLocationData(SteamPartyBeaconLocation_t BeaconLocation, ESteamPartyBeaconLocationData eData, out string pchDataStringOut, int cchDataStringOut) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchDataStringOut2 = Marshal.AllocHGlobal(cchDataStringOut); - bool ret = NativeMethods.ISteamParties_GetBeaconLocationData(CSteamAPIContext.GetSteamParties(), BeaconLocation, eData, pchDataStringOut2, cchDataStringOut); - pchDataStringOut = ret ? InteropHelp.PtrToStringUTF8(pchDataStringOut2) : null; - Marshal.FreeHGlobal(pchDataStringOut2); - return ret; - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammatchmaking.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammatchmaking.cs.meta deleted file mode 100644 index 4ccb6fa..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammatchmaking.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6511b3ce700864d46ab81d101aac5560 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammusic.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammusic.cs deleted file mode 100644 index 7568da4..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammusic.cs +++ /dev/null @@ -1,69 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamMusic { - public static bool BIsEnabled() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusic_BIsEnabled(CSteamAPIContext.GetSteamMusic()); - } - - public static bool BIsPlaying() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusic_BIsPlaying(CSteamAPIContext.GetSteamMusic()); - } - - public static AudioPlayback_Status GetPlaybackStatus() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusic_GetPlaybackStatus(CSteamAPIContext.GetSteamMusic()); - } - - public static void Play() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMusic_Play(CSteamAPIContext.GetSteamMusic()); - } - - public static void Pause() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMusic_Pause(CSteamAPIContext.GetSteamMusic()); - } - - public static void PlayPrevious() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMusic_PlayPrevious(CSteamAPIContext.GetSteamMusic()); - } - - public static void PlayNext() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMusic_PlayNext(CSteamAPIContext.GetSteamMusic()); - } - - /// <summary> - /// <para> volume is between 0.0 and 1.0</para> - /// </summary> - public static void SetVolume(float flVolume) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamMusic_SetVolume(CSteamAPIContext.GetSteamMusic(), flVolume); - } - - public static float GetVolume() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusic_GetVolume(CSteamAPIContext.GetSteamMusic()); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammusic.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammusic.cs.meta deleted file mode 100644 index e2729dd..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammusic.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 72776072787328946ad6c1c1b0f54e0d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammusicremote.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammusicremote.cs deleted file mode 100644 index a56ac7c..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammusicremote.cs +++ /dev/null @@ -1,212 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamMusicRemote { - /// <summary> - /// <para> Service Definition</para> - /// </summary> - public static bool RegisterSteamMusicRemote(string pchName) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamMusicRemote_RegisterSteamMusicRemote(CSteamAPIContext.GetSteamMusicRemote(), pchName2); - } - } - - public static bool DeregisterSteamMusicRemote() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_DeregisterSteamMusicRemote(CSteamAPIContext.GetSteamMusicRemote()); - } - - public static bool BIsCurrentMusicRemote() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_BIsCurrentMusicRemote(CSteamAPIContext.GetSteamMusicRemote()); - } - - public static bool BActivationSuccess(bool bValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_BActivationSuccess(CSteamAPIContext.GetSteamMusicRemote(), bValue); - } - - public static bool SetDisplayName(string pchDisplayName) { - InteropHelp.TestIfAvailableClient(); - using (var pchDisplayName2 = new InteropHelp.UTF8StringHandle(pchDisplayName)) { - return NativeMethods.ISteamMusicRemote_SetDisplayName(CSteamAPIContext.GetSteamMusicRemote(), pchDisplayName2); - } - } - - public static bool SetPNGIcon_64x64(byte[] pvBuffer, uint cbBufferLength) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_SetPNGIcon_64x64(CSteamAPIContext.GetSteamMusicRemote(), pvBuffer, cbBufferLength); - } - - /// <summary> - /// <para> Abilities for the user interface</para> - /// </summary> - public static bool EnablePlayPrevious(bool bValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_EnablePlayPrevious(CSteamAPIContext.GetSteamMusicRemote(), bValue); - } - - public static bool EnablePlayNext(bool bValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_EnablePlayNext(CSteamAPIContext.GetSteamMusicRemote(), bValue); - } - - public static bool EnableShuffled(bool bValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_EnableShuffled(CSteamAPIContext.GetSteamMusicRemote(), bValue); - } - - public static bool EnableLooped(bool bValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_EnableLooped(CSteamAPIContext.GetSteamMusicRemote(), bValue); - } - - public static bool EnableQueue(bool bValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_EnableQueue(CSteamAPIContext.GetSteamMusicRemote(), bValue); - } - - public static bool EnablePlaylists(bool bValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_EnablePlaylists(CSteamAPIContext.GetSteamMusicRemote(), bValue); - } - - /// <summary> - /// <para> Status</para> - /// </summary> - public static bool UpdatePlaybackStatus(AudioPlayback_Status nStatus) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_UpdatePlaybackStatus(CSteamAPIContext.GetSteamMusicRemote(), nStatus); - } - - public static bool UpdateShuffled(bool bValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_UpdateShuffled(CSteamAPIContext.GetSteamMusicRemote(), bValue); - } - - public static bool UpdateLooped(bool bValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_UpdateLooped(CSteamAPIContext.GetSteamMusicRemote(), bValue); - } - - /// <summary> - /// <para> volume is between 0.0 and 1.0</para> - /// </summary> - public static bool UpdateVolume(float flValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_UpdateVolume(CSteamAPIContext.GetSteamMusicRemote(), flValue); - } - - /// <summary> - /// <para> Current Entry</para> - /// </summary> - public static bool CurrentEntryWillChange() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_CurrentEntryWillChange(CSteamAPIContext.GetSteamMusicRemote()); - } - - public static bool CurrentEntryIsAvailable(bool bAvailable) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_CurrentEntryIsAvailable(CSteamAPIContext.GetSteamMusicRemote(), bAvailable); - } - - public static bool UpdateCurrentEntryText(string pchText) { - InteropHelp.TestIfAvailableClient(); - using (var pchText2 = new InteropHelp.UTF8StringHandle(pchText)) { - return NativeMethods.ISteamMusicRemote_UpdateCurrentEntryText(CSteamAPIContext.GetSteamMusicRemote(), pchText2); - } - } - - public static bool UpdateCurrentEntryElapsedSeconds(int nValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds(CSteamAPIContext.GetSteamMusicRemote(), nValue); - } - - public static bool UpdateCurrentEntryCoverArt(byte[] pvBuffer, uint cbBufferLength) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_UpdateCurrentEntryCoverArt(CSteamAPIContext.GetSteamMusicRemote(), pvBuffer, cbBufferLength); - } - - public static bool CurrentEntryDidChange() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_CurrentEntryDidChange(CSteamAPIContext.GetSteamMusicRemote()); - } - - /// <summary> - /// <para> Queue</para> - /// </summary> - public static bool QueueWillChange() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_QueueWillChange(CSteamAPIContext.GetSteamMusicRemote()); - } - - public static bool ResetQueueEntries() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_ResetQueueEntries(CSteamAPIContext.GetSteamMusicRemote()); - } - - public static bool SetQueueEntry(int nID, int nPosition, string pchEntryText) { - InteropHelp.TestIfAvailableClient(); - using (var pchEntryText2 = new InteropHelp.UTF8StringHandle(pchEntryText)) { - return NativeMethods.ISteamMusicRemote_SetQueueEntry(CSteamAPIContext.GetSteamMusicRemote(), nID, nPosition, pchEntryText2); - } - } - - public static bool SetCurrentQueueEntry(int nID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_SetCurrentQueueEntry(CSteamAPIContext.GetSteamMusicRemote(), nID); - } - - public static bool QueueDidChange() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_QueueDidChange(CSteamAPIContext.GetSteamMusicRemote()); - } - - /// <summary> - /// <para> Playlist</para> - /// </summary> - public static bool PlaylistWillChange() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_PlaylistWillChange(CSteamAPIContext.GetSteamMusicRemote()); - } - - public static bool ResetPlaylistEntries() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_ResetPlaylistEntries(CSteamAPIContext.GetSteamMusicRemote()); - } - - public static bool SetPlaylistEntry(int nID, int nPosition, string pchEntryText) { - InteropHelp.TestIfAvailableClient(); - using (var pchEntryText2 = new InteropHelp.UTF8StringHandle(pchEntryText)) { - return NativeMethods.ISteamMusicRemote_SetPlaylistEntry(CSteamAPIContext.GetSteamMusicRemote(), nID, nPosition, pchEntryText2); - } - } - - public static bool SetCurrentPlaylistEntry(int nID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_SetCurrentPlaylistEntry(CSteamAPIContext.GetSteamMusicRemote(), nID); - } - - public static bool PlaylistDidChange() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamMusicRemote_PlaylistDidChange(CSteamAPIContext.GetSteamMusicRemote()); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammusicremote.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammusicremote.cs.meta deleted file mode 100644 index 3ab0241..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteammusicremote.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 288337a492146b7469b28813c4cb20ef -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworking.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworking.cs deleted file mode 100644 index afed66e..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworking.cs +++ /dev/null @@ -1,270 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamNetworking { - /// <summary> - /// <para>//////////////////////////////////////////////////////////////////////////////////////////</para> - /// <para> UDP-style (connectionless) networking interface. These functions send messages using</para> - /// <para> an API organized around the destination. Reliable and unreliable messages are supported.</para> - /// <para> For a more TCP-style interface (meaning you have a connection handle), see the functions below.</para> - /// <para> Both interface styles can send both reliable and unreliable messages.</para> - /// <para> Automatically establishes NAT-traversing or Relay server connections</para> - /// <para> These APIs are deprecated, and may be removed in a future version of the Steamworks</para> - /// <para> SDK. See ISteamNetworkingMessages.</para> - /// <para> Sends a P2P packet to the specified user</para> - /// <para> UDP-like, unreliable and a max packet size of 1200 bytes</para> - /// <para> the first packet send may be delayed as the NAT-traversal code runs</para> - /// <para> if we can't get through to the user, an error will be posted via the callback P2PSessionConnectFail_t</para> - /// <para> see EP2PSend enum above for the descriptions of the different ways of sending packets</para> - /// <para> nChannel is a routing number you can use to help route message to different systems - you'll have to call ReadP2PPacket()</para> - /// <para> with the same channel number in order to retrieve the data on the other end</para> - /// <para> using different channels to talk to the same user will still use the same underlying p2p connection, saving on resources</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> returns true if any data is available for read, and the amount of data that will need to be read</para> - /// </summary> - public static bool IsP2PPacketAvailable(out uint pcubMsgSize, int nChannel = 0) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworking_IsP2PPacketAvailable(CSteamAPIContext.GetSteamNetworking(), out pcubMsgSize, nChannel); - } - - /// <summary> - /// <para> reads in a packet that has been sent from another user via SendP2PPacket()</para> - /// <para> returns the size of the message and the steamID of the user who sent it in the last two parameters</para> - /// <para> if the buffer passed in is too small, the message will be truncated</para> - /// <para> this call is not blocking, and will return false if no data is available</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> AcceptP2PSessionWithUser() should only be called in response to a P2PSessionRequest_t callback</para> - /// <para> P2PSessionRequest_t will be posted if another user tries to send you a packet that you haven't talked to yet</para> - /// <para> if you don't want to talk to the user, just ignore the request</para> - /// <para> if the user continues to send you packets, another P2PSessionRequest_t will be posted periodically</para> - /// <para> this may be called multiple times for a single user</para> - /// <para> (if you've called SendP2PPacket() on the other user, this implicitly accepts the session request)</para> - /// </summary> - public static bool AcceptP2PSessionWithUser(CSteamID steamIDRemote) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworking_AcceptP2PSessionWithUser(CSteamAPIContext.GetSteamNetworking(), steamIDRemote); - } - - /// <summary> - /// <para> call CloseP2PSessionWithUser() when you're done talking to a user, will free up resources under-the-hood</para> - /// <para> if the remote user tries to send data to you again, another P2PSessionRequest_t callback will be posted</para> - /// </summary> - public static bool CloseP2PSessionWithUser(CSteamID steamIDRemote) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworking_CloseP2PSessionWithUser(CSteamAPIContext.GetSteamNetworking(), steamIDRemote); - } - - /// <summary> - /// <para> call CloseP2PChannelWithUser() when you're done talking to a user on a specific channel. Once all channels</para> - /// <para> open channels to a user have been closed, the open session to the user will be closed and new data from this</para> - /// <para> user will trigger a P2PSessionRequest_t callback</para> - /// </summary> - public static bool CloseP2PChannelWithUser(CSteamID steamIDRemote, int nChannel) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworking_CloseP2PChannelWithUser(CSteamAPIContext.GetSteamNetworking(), steamIDRemote, nChannel); - } - - /// <summary> - /// <para> fills out P2PSessionState_t structure with details about the underlying connection to the user</para> - /// <para> should only needed for debugging purposes</para> - /// <para> returns false if no connection exists to the specified user</para> - /// </summary> - public static bool GetP2PSessionState(CSteamID steamIDRemote, out P2PSessionState_t pConnectionState) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworking_GetP2PSessionState(CSteamAPIContext.GetSteamNetworking(), steamIDRemote, out pConnectionState); - } - - /// <summary> - /// <para> Allow P2P connections to fall back to being relayed through the Steam servers if a direct connection</para> - /// <para> or NAT-traversal cannot be established. Only applies to connections created after setting this value,</para> - /// <para> or to existing connections that need to automatically reconnect after this value is set.</para> - /// <para> P2P packet relay is allowed by default</para> - /// <para> NOTE: This function is deprecated and may be removed in a future version of the SDK. For</para> - /// <para> security purposes, we may decide to relay the traffic to certain peers, even if you pass false</para> - /// <para> to this function, to prevent revealing the client's IP address top another peer.</para> - /// </summary> - public static bool AllowP2PPacketRelay(bool bAllow) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworking_AllowP2PPacketRelay(CSteamAPIContext.GetSteamNetworking(), bAllow); - } - - /// <summary> - /// <para>//////////////////////////////////////////////////////////////////////////////////////////</para> - /// <para> LISTEN / CONNECT connection-oriented interface functions</para> - /// <para> These functions are more like a client-server TCP API. One side is the "server"</para> - /// <para> and "listens" for incoming connections, which then must be "accepted." The "client"</para> - /// <para> initiates a connection by "connecting." Sending and receiving is done through a</para> - /// <para> connection handle.</para> - /// <para> For a more UDP-style interface, where you do not track connection handles but</para> - /// <para> simply send messages to a SteamID, use the UDP-style functions above.</para> - /// <para> Both methods can send both reliable and unreliable methods.</para> - /// <para> These APIs are deprecated, and may be removed in a future version of the Steamworks</para> - /// <para> SDK. See ISteamNetworkingSockets.</para> - /// <para>//////////////////////////////////////////////////////////////////////////////////////////</para> - /// <para> creates a socket and listens others to connect</para> - /// <para> will trigger a SocketStatusCallback_t callback on another client connecting</para> - /// <para> nVirtualP2PPort is the unique ID that the client will connect to, in case you have multiple ports</para> - /// <para> this can usually just be 0 unless you want multiple sets of connections</para> - /// <para> unIP is the local IP address to bind to</para> - /// <para> pass in 0 if you just want the default local IP</para> - /// <para> unPort is the port to use</para> - /// <para> pass in 0 if you don't want users to be able to connect via IP/Port, but expect to be always peer-to-peer connections only</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> creates a socket and begin connection to a remote destination</para> - /// <para> can connect via a known steamID (client or game server), or directly to an IP</para> - /// <para> on success will trigger a SocketStatusCallback_t callback</para> - /// <para> on failure or timeout will trigger a SocketStatusCallback_t callback with a failure code in m_eSNetSocketState</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> disconnects the connection to the socket, if any, and invalidates the handle</para> - /// <para> any unread data on the socket will be thrown away</para> - /// <para> if bNotifyRemoteEnd is set, socket will not be completely destroyed until the remote end acknowledges the disconnect</para> - /// </summary> - public static bool DestroySocket(SNetSocket_t hSocket, bool bNotifyRemoteEnd) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworking_DestroySocket(CSteamAPIContext.GetSteamNetworking(), hSocket, bNotifyRemoteEnd); - } - - /// <summary> - /// <para> destroying a listen socket will automatically kill all the regular sockets generated from it</para> - /// </summary> - public static bool DestroyListenSocket(SNetListenSocket_t hSocket, bool bNotifyRemoteEnd) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworking_DestroyListenSocket(CSteamAPIContext.GetSteamNetworking(), hSocket, bNotifyRemoteEnd); - } - - /// <summary> - /// <para> sending data</para> - /// <para> must be a handle to a connected socket</para> - /// <para> data is all sent via UDP, and thus send sizes are limited to 1200 bytes; after this, many routers will start dropping packets</para> - /// <para> use the reliable flag with caution; although the resend rate is pretty aggressive,</para> - /// <para> it can still cause stalls in receiving data (like TCP)</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> receiving data</para> - /// <para> returns false if there is no data remaining</para> - /// <para> fills out *pcubMsgSize with the size of the next message, in bytes</para> - /// </summary> - public static bool IsDataAvailableOnSocket(SNetSocket_t hSocket, out uint pcubMsgSize) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworking_IsDataAvailableOnSocket(CSteamAPIContext.GetSteamNetworking(), hSocket, out pcubMsgSize); - } - - /// <summary> - /// <para> fills in pubDest with the contents of the message</para> - /// <para> messages are always complete, of the same size as was sent (i.e. packetized, not streaming)</para> - /// <para> if *pcubMsgSize < cubDest, only partial data is written</para> - /// <para> returns false if no data is available</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> checks for data from any socket that has been connected off this listen socket</para> - /// <para> returns false if there is no data remaining</para> - /// <para> fills out *pcubMsgSize with the size of the next message, in bytes</para> - /// <para> fills out *phSocket with the socket that data is available on</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> retrieves data from any socket that has been connected off this listen socket</para> - /// <para> fills in pubDest with the contents of the message</para> - /// <para> messages are always complete, of the same size as was sent (i.e. packetized, not streaming)</para> - /// <para> if *pcubMsgSize < cubDest, only partial data is written</para> - /// <para> returns false if no data is available</para> - /// <para> fills out *phSocket with the socket that data is available on</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> returns information about the specified socket, filling out the contents of the pointers</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> returns which local port the listen socket is bound to</para> - /// <para> *pnIP and *pnPort will be 0 if the socket is set to listen for P2P connections only</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> returns true to describe how the socket ended up connecting</para> - /// </summary> - public static ESNetSocketConnectionType GetSocketConnectionType(SNetSocket_t hSocket) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworking_GetSocketConnectionType(CSteamAPIContext.GetSteamNetworking(), hSocket); - } - - /// <summary> - /// <para> max packet size, in bytes</para> - /// </summary> - public static int GetMaxPacketSize(SNetSocket_t hSocket) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworking_GetMaxPacketSize(CSteamAPIContext.GetSteamNetworking(), hSocket); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworking.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworking.cs.meta deleted file mode 100644 index 85d2bde..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworking.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 15b6f39e728f43c4b85c79fd3d6e6ecb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingmessages.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingmessages.cs deleted file mode 100644 index db8e2c1..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingmessages.cs +++ /dev/null @@ -1,139 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamNetworkingMessages { - /// <summary> - /// <para>/ Sends a message to the specified host. If we don't already have a session with that user,</para> - /// <para>/ a session is implicitly created. There might be some handshaking that needs to happen</para> - /// <para>/ before we can actually begin sending message data. If this handshaking fails and we can't</para> - /// <para>/ get through, an error will be posted via the callback SteamNetworkingMessagesSessionFailed_t.</para> - /// <para>/ There is no notification when the operation succeeds. (You should have the peer send a reply</para> - /// <para>/ for this purpose.)</para> - /// <para>/</para> - /// <para>/ Sending a message to a host will also implicitly accept any incoming connection from that host.</para> - /// <para>/</para> - /// <para>/ nSendFlags is a bitmask of k_nSteamNetworkingSend_xxx options</para> - /// <para>/</para> - /// <para>/ nRemoteChannel is a routing number you can use to help route message to different systems.</para> - /// <para>/ You'll have to call ReceiveMessagesOnChannel() with the same channel number in order to retrieve</para> - /// <para>/ the data on the other end.</para> - /// <para>/</para> - /// <para>/ Using different channels to talk to the same user will still use the same underlying</para> - /// <para>/ connection, saving on resources. If you don't need this feature, use 0.</para> - /// <para>/ Otherwise, small integers are the most efficient.</para> - /// <para>/</para> - /// <para>/ It is guaranteed that reliable messages to the same host on the same channel</para> - /// <para>/ will be be received by the remote host (if they are received at all) exactly once,</para> - /// <para>/ and in the same order that they were sent.</para> - /// <para>/</para> - /// <para>/ NO other order guarantees exist! In particular, unreliable messages may be dropped,</para> - /// <para>/ received out of order with respect to each other and with respect to reliable data,</para> - /// <para>/ or may be received multiple times. Messages on different channels are *not* guaranteed</para> - /// <para>/ to be received in the order they were sent.</para> - /// <para>/</para> - /// <para>/ A note for those familiar with TCP/IP ports, or converting an existing codebase that</para> - /// <para>/ opened multiple sockets: You might notice that there is only one channel, and with</para> - /// <para>/ TCP/IP each endpoint has a port number. You can think of the channel number as the</para> - /// <para>/ *destination* port. If you need each message to also include a "source port" (so the</para> - /// <para>/ recipient can route the reply), then just put that in your message. That is essentially</para> - /// <para>/ how UDP works!</para> - /// <para>/</para> - /// <para>/ Returns:</para> - /// <para>/ - k_EREsultOK on success.</para> - /// <para>/ - k_EResultNoConnection, if the session has failed or was closed by the peer and</para> - /// <para>/ k_nSteamNetworkingSend_AutoRestartBrokenSession was not specified. (You can</para> - /// <para>/ use GetSessionConnectionInfo to get the details.) In order to acknowledge the</para> - /// <para>/ broken session and start a new one, you must call CloseSessionWithUser, or you may</para> - /// <para>/ repeat the call with k_nSteamNetworkingSend_AutoRestartBrokenSession. See</para> - /// <para>/ k_nSteamNetworkingSend_AutoRestartBrokenSession for more details.</para> - /// <para>/ - See ISteamNetworkingSockets::SendMessageToConnection for more possible return values</para> - /// </summary> - public static EResult SendMessageToUser(ref SteamNetworkingIdentity identityRemote, IntPtr pubData, uint cubData, int nSendFlags, int nRemoteChannel) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingMessages_SendMessageToUser(CSteamAPIContext.GetSteamNetworkingMessages(), ref identityRemote, pubData, cubData, nSendFlags, nRemoteChannel); - } - - /// <summary> - /// <para>/ Reads the next message that has been sent from another user via SendMessageToUser() on the given channel.</para> - /// <para>/ Returns number of messages returned into your list. (0 if no message are available on that channel.)</para> - /// <para>/</para> - /// <para>/ When you're done with the message object(s), make sure and call SteamNetworkingMessage_t::Release()!</para> - /// </summary> - public static int ReceiveMessagesOnChannel(int nLocalChannel, IntPtr[] ppOutMessages, int nMaxMessages) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingMessages_ReceiveMessagesOnChannel(CSteamAPIContext.GetSteamNetworkingMessages(), nLocalChannel, ppOutMessages, nMaxMessages); - } - - /// <summary> - /// <para>/ Call this in response to a SteamNetworkingMessagesSessionRequest_t callback.</para> - /// <para>/ SteamNetworkingMessagesSessionRequest_t are posted when a user tries to send you a message,</para> - /// <para>/ and you haven't tried to talk to them first. If you don't want to talk to them, just ignore</para> - /// <para>/ the request. If the user continues to send you messages, SteamNetworkingMessagesSessionRequest_t</para> - /// <para>/ callbacks will continue to be posted periodically.</para> - /// <para>/</para> - /// <para>/ Returns false if there is no session with the user pending or otherwise. If there is an</para> - /// <para>/ existing active session, this function will return true, even if it is not pending.</para> - /// <para>/</para> - /// <para>/ Calling SendMessageToUser() will implicitly accepts any pending session request to that user.</para> - /// </summary> - public static bool AcceptSessionWithUser(ref SteamNetworkingIdentity identityRemote) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingMessages_AcceptSessionWithUser(CSteamAPIContext.GetSteamNetworkingMessages(), ref identityRemote); - } - - /// <summary> - /// <para>/ Call this when you're done talking to a user to immediately free up resources under-the-hood.</para> - /// <para>/ If the remote user tries to send data to you again, another SteamNetworkingMessagesSessionRequest_t</para> - /// <para>/ callback will be posted.</para> - /// <para>/</para> - /// <para>/ Note that sessions that go unused for a few minutes are automatically timed out.</para> - /// </summary> - public static bool CloseSessionWithUser(ref SteamNetworkingIdentity identityRemote) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingMessages_CloseSessionWithUser(CSteamAPIContext.GetSteamNetworkingMessages(), ref identityRemote); - } - - /// <summary> - /// <para>/ Call this when you're done talking to a user on a specific channel. Once all</para> - /// <para>/ open channels to a user have been closed, the open session to the user will be</para> - /// <para>/ closed, and any new data from this user will trigger a</para> - /// <para>/ SteamSteamNetworkingMessagesSessionRequest_t callback</para> - /// </summary> - public static bool CloseChannelWithUser(ref SteamNetworkingIdentity identityRemote, int nLocalChannel) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingMessages_CloseChannelWithUser(CSteamAPIContext.GetSteamNetworkingMessages(), ref identityRemote, nLocalChannel); - } - - /// <summary> - /// <para>/ Returns information about the latest state of a connection, if any, with the given peer.</para> - /// <para>/ Primarily intended for debugging purposes, but can also be used to get more detailed</para> - /// <para>/ failure information. (See SendMessageToUser and k_nSteamNetworkingSend_AutoRestartBrokenSession.)</para> - /// <para>/</para> - /// <para>/ Returns the value of SteamNetConnectionInfo_t::m_eState, or k_ESteamNetworkingConnectionState_None</para> - /// <para>/ if no connection exists with specified peer. You may pass nullptr for either parameter if</para> - /// <para>/ you do not need the corresponding details. Note that sessions time out after a while,</para> - /// <para>/ so if a connection fails, or SendMessageToUser returns k_EResultNoConnection, you cannot wait</para> - /// <para>/ indefinitely to obtain the reason for failure.</para> - /// </summary> - public static ESteamNetworkingConnectionState GetSessionConnectionInfo(ref SteamNetworkingIdentity identityRemote, out SteamNetConnectionInfo_t pConnectionInfo, out SteamNetConnectionRealTimeStatus_t pQuickStatus) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingMessages_GetSessionConnectionInfo(CSteamAPIContext.GetSteamNetworkingMessages(), ref identityRemote, out pConnectionInfo, out pQuickStatus); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingmessages.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingmessages.cs.meta deleted file mode 100644 index 369aecc..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingmessages.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: abf31235e5c3e35459961b3c09239003 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingsockets.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingsockets.cs deleted file mode 100644 index 66bd295..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingsockets.cs +++ /dev/null @@ -1,1111 +0,0 @@ -#define STEAMNETWORKINGSOCKETS_ENABLE_SDR -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamNetworkingSockets { - /// <summary> - /// <para>/ Creates a "server" socket that listens for clients to connect to by</para> - /// <para>/ calling ConnectByIPAddress, over ordinary UDP (IPv4 or IPv6)</para> - /// <para>/</para> - /// <para>/ You must select a specific local port to listen on and set it</para> - /// <para>/ the port field of the local address.</para> - /// <para>/</para> - /// <para>/ Usually you will set the IP portion of the address to zero (SteamNetworkingIPAddr::Clear()).</para> - /// <para>/ This means that you will not bind to any particular local interface (i.e. the same</para> - /// <para>/ as INADDR_ANY in plain socket code). Furthermore, if possible the socket will be bound</para> - /// <para>/ in "dual stack" mode, which means that it can accept both IPv4 and IPv6 client connections.</para> - /// <para>/ If you really do wish to bind a particular interface, then set the local address to the</para> - /// <para>/ appropriate IPv4 or IPv6 IP.</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// <para>/</para> - /// <para>/ When a client attempts to connect, a SteamNetConnectionStatusChangedCallback_t</para> - /// <para>/ will be posted. The connection will be in the connecting state.</para> - /// </summary> - public static HSteamListenSocket CreateListenSocketIP(ref SteamNetworkingIPAddr localAddress, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableClient(); - return (HSteamListenSocket)NativeMethods.ISteamNetworkingSockets_CreateListenSocketIP(CSteamAPIContext.GetSteamNetworkingSockets(), ref localAddress, nOptions, pOptions); - } - - /// <summary> - /// <para>/ Creates a connection and begins talking to a "server" over UDP at the</para> - /// <para>/ given IPv4 or IPv6 address. The remote host must be listening with a</para> - /// <para>/ matching call to CreateListenSocketIP on the specified port.</para> - /// <para>/</para> - /// <para>/ A SteamNetConnectionStatusChangedCallback_t callback will be triggered when we start</para> - /// <para>/ connecting, and then another one on either timeout or successful connection.</para> - /// <para>/</para> - /// <para>/ If the server does not have any identity configured, then their network address</para> - /// <para>/ will be the only identity in use. Or, the network host may provide a platform-specific</para> - /// <para>/ identity with or without a valid certificate to authenticate that identity. (These</para> - /// <para>/ details will be contained in the SteamNetConnectionStatusChangedCallback_t.) It's</para> - /// <para>/ up to your application to decide whether to allow the connection.</para> - /// <para>/</para> - /// <para>/ By default, all connections will get basic encryption sufficient to prevent</para> - /// <para>/ casual eavesdropping. But note that without certificates (or a shared secret</para> - /// <para>/ distributed through some other out-of-band mechanism), you don't have any</para> - /// <para>/ way of knowing who is actually on the other end, and thus are vulnerable to</para> - /// <para>/ man-in-the-middle attacks.</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// </summary> - public static HSteamNetConnection ConnectByIPAddress(ref SteamNetworkingIPAddr address, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableClient(); - return (HSteamNetConnection)NativeMethods.ISteamNetworkingSockets_ConnectByIPAddress(CSteamAPIContext.GetSteamNetworkingSockets(), ref address, nOptions, pOptions); - } - - /// <summary> - /// <para>/ Like CreateListenSocketIP, but clients will connect using ConnectP2P.</para> - /// <para>/</para> - /// <para>/ nLocalVirtualPort specifies how clients can connect to this socket using</para> - /// <para>/ ConnectP2P. It's very common for applications to only have one listening socket;</para> - /// <para>/ in that case, use zero. If you need to open multiple listen sockets and have clients</para> - /// <para>/ be able to connect to one or the other, then nLocalVirtualPort should be a small</para> - /// <para>/ integer (<1000) unique to each listen socket you create.</para> - /// <para>/</para> - /// <para>/ If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess()</para> - /// <para>/ when your app initializes.</para> - /// <para>/</para> - /// <para>/ If you are listening on a dedicated servers in known data center,</para> - /// <para>/ then you can listen using this function instead of CreateHostedDedicatedServerListenSocket,</para> - /// <para>/ to allow clients to connect without a ticket. Any user that owns</para> - /// <para>/ the app and is signed into Steam will be able to attempt to connect to</para> - /// <para>/ your server. Also, a connection attempt may require the client to</para> - /// <para>/ be connected to Steam, which is one more moving part that may fail. When</para> - /// <para>/ tickets are used, then once a ticket is obtained, a client can connect to</para> - /// <para>/ your server even if they got disconnected from Steam or Steam is offline.</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// </summary> - public static HSteamListenSocket CreateListenSocketP2P(int nLocalVirtualPort, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableClient(); - return (HSteamListenSocket)NativeMethods.ISteamNetworkingSockets_CreateListenSocketP2P(CSteamAPIContext.GetSteamNetworkingSockets(), nLocalVirtualPort, nOptions, pOptions); - } - - /// <summary> - /// <para>/ Begin connecting to a peer that is identified using a platform-specific identifier.</para> - /// <para>/ This uses the default rendezvous service, which depends on the platform and library</para> - /// <para>/ configuration. (E.g. on Steam, it goes through the steam backend.)</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// <para>/</para> - /// <para>/ To use your own signaling service, see:</para> - /// <para>/ - ConnectP2PCustomSignaling</para> - /// <para>/ - k_ESteamNetworkingConfig_Callback_CreateConnectionSignaling</para> - /// </summary> - public static HSteamNetConnection ConnectP2P(ref SteamNetworkingIdentity identityRemote, int nRemoteVirtualPort, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableClient(); - return (HSteamNetConnection)NativeMethods.ISteamNetworkingSockets_ConnectP2P(CSteamAPIContext.GetSteamNetworkingSockets(), ref identityRemote, nRemoteVirtualPort, nOptions, pOptions); - } - - /// <summary> - /// <para>/ Accept an incoming connection that has been received on a listen socket.</para> - /// <para>/</para> - /// <para>/ When a connection attempt is received (perhaps after a few basic handshake</para> - /// <para>/ packets have been exchanged to prevent trivial spoofing), a connection interface</para> - /// <para>/ object is created in the k_ESteamNetworkingConnectionState_Connecting state</para> - /// <para>/ and a SteamNetConnectionStatusChangedCallback_t is posted. At this point, your</para> - /// <para>/ application MUST either accept or close the connection. (It may not ignore it.)</para> - /// <para>/ Accepting the connection will transition it either into the connected state,</para> - /// <para>/ or the finding route state, depending on the connection type.</para> - /// <para>/</para> - /// <para>/ You should take action within a second or two, because accepting the connection is</para> - /// <para>/ what actually sends the reply notifying the client that they are connected. If you</para> - /// <para>/ delay taking action, from the client's perspective it is the same as the network</para> - /// <para>/ being unresponsive, and the client may timeout the connection attempt. In other</para> - /// <para>/ words, the client cannot distinguish between a delay caused by network problems</para> - /// <para>/ and a delay caused by the application.</para> - /// <para>/</para> - /// <para>/ This means that if your application goes for more than a few seconds without</para> - /// <para>/ processing callbacks (for example, while loading a map), then there is a chance</para> - /// <para>/ that a client may attempt to connect in that interval and fail due to timeout.</para> - /// <para>/</para> - /// <para>/ If the application does not respond to the connection attempt in a timely manner,</para> - /// <para>/ and we stop receiving communication from the client, the connection attempt will</para> - /// <para>/ be timed out locally, transitioning the connection to the</para> - /// <para>/ k_ESteamNetworkingConnectionState_ProblemDetectedLocally state. The client may also</para> - /// <para>/ close the connection before it is accepted, and a transition to the</para> - /// <para>/ k_ESteamNetworkingConnectionState_ClosedByPeer is also possible depending the exact</para> - /// <para>/ sequence of events.</para> - /// <para>/</para> - /// <para>/ Returns k_EResultInvalidParam if the handle is invalid.</para> - /// <para>/ Returns k_EResultInvalidState if the connection is not in the appropriate state.</para> - /// <para>/ (Remember that the connection state could change in between the time that the</para> - /// <para>/ notification being posted to the queue and when it is received by the application.)</para> - /// <para>/</para> - /// <para>/ A note about connection configuration options. If you need to set any configuration</para> - /// <para>/ options that are common to all connections accepted through a particular listen</para> - /// <para>/ socket, consider setting the options on the listen socket, since such options are</para> - /// <para>/ inherited automatically. If you really do need to set options that are connection</para> - /// <para>/ specific, it is safe to set them on the connection before accepting the connection.</para> - /// </summary> - public static EResult AcceptConnection(HSteamNetConnection hConn) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_AcceptConnection(CSteamAPIContext.GetSteamNetworkingSockets(), hConn); - } - - /// <summary> - /// <para>/ Disconnects from the remote host and invalidates the connection handle.</para> - /// <para>/ Any unread data on the connection is discarded.</para> - /// <para>/</para> - /// <para>/ nReason is an application defined code that will be received on the other</para> - /// <para>/ end and recorded (when possible) in backend analytics. The value should</para> - /// <para>/ come from a restricted range. (See ESteamNetConnectionEnd.) If you don't need</para> - /// <para>/ to communicate any information to the remote host, and do not want analytics to</para> - /// <para>/ be able to distinguish "normal" connection terminations from "exceptional" ones,</para> - /// <para>/ You may pass zero, in which case the generic value of</para> - /// <para>/ k_ESteamNetConnectionEnd_App_Generic will be used.</para> - /// <para>/</para> - /// <para>/ pszDebug is an optional human-readable diagnostic string that will be received</para> - /// <para>/ by the remote host and recorded (when possible) in backend analytics.</para> - /// <para>/</para> - /// <para>/ If you wish to put the socket into a "linger" state, where an attempt is made to</para> - /// <para>/ flush any remaining sent data, use bEnableLinger=true. Otherwise reliable data</para> - /// <para>/ is not flushed.</para> - /// <para>/</para> - /// <para>/ If the connection has already ended and you are just freeing up the</para> - /// <para>/ connection interface, the reason code, debug string, and linger flag are</para> - /// <para>/ ignored.</para> - /// </summary> - public static bool CloseConnection(HSteamNetConnection hPeer, int nReason, string pszDebug, bool bEnableLinger) { - InteropHelp.TestIfAvailableClient(); - using (var pszDebug2 = new InteropHelp.UTF8StringHandle(pszDebug)) { - return NativeMethods.ISteamNetworkingSockets_CloseConnection(CSteamAPIContext.GetSteamNetworkingSockets(), hPeer, nReason, pszDebug2, bEnableLinger); - } - } - - /// <summary> - /// <para>/ Destroy a listen socket. All the connections that were accepting on the listen</para> - /// <para>/ socket are closed ungracefully.</para> - /// </summary> - public static bool CloseListenSocket(HSteamListenSocket hSocket) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_CloseListenSocket(CSteamAPIContext.GetSteamNetworkingSockets(), hSocket); - } - - /// <summary> - /// <para>/ Set connection user data. the data is returned in the following places</para> - /// <para>/ - You can query it using GetConnectionUserData.</para> - /// <para>/ - The SteamNetworkingmessage_t structure.</para> - /// <para>/ - The SteamNetConnectionInfo_t structure.</para> - /// <para>/ (Which is a member of SteamNetConnectionStatusChangedCallback_t -- but see WARNINGS below!!!!)</para> - /// <para>/</para> - /// <para>/ Do you need to set this atomically when the connection is created?</para> - /// <para>/ See k_ESteamNetworkingConfig_ConnectionUserData.</para> - /// <para>/</para> - /// <para>/ WARNING: Be *very careful* when using the value provided in callbacks structs.</para> - /// <para>/ Callbacks are queued, and the value that you will receive in your</para> - /// <para>/ callback is the userdata that was effective at the time the callback</para> - /// <para>/ was queued. There are subtle race conditions that can hapen if you</para> - /// <para>/ don't understand this!</para> - /// <para>/</para> - /// <para>/ If any incoming messages for this connection are queued, the userdata</para> - /// <para>/ field is updated, so that when when you receive messages (e.g. with</para> - /// <para>/ ReceiveMessagesOnConnection), they will always have the very latest</para> - /// <para>/ userdata. So the tricky race conditions that can happen with callbacks</para> - /// <para>/ do not apply to retrieving messages.</para> - /// <para>/</para> - /// <para>/ Returns false if the handle is invalid.</para> - /// </summary> - public static bool SetConnectionUserData(HSteamNetConnection hPeer, long nUserData) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_SetConnectionUserData(CSteamAPIContext.GetSteamNetworkingSockets(), hPeer, nUserData); - } - - /// <summary> - /// <para>/ Fetch connection user data. Returns -1 if handle is invalid</para> - /// <para>/ or if you haven't set any userdata on the connection.</para> - /// </summary> - public static long GetConnectionUserData(HSteamNetConnection hPeer) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_GetConnectionUserData(CSteamAPIContext.GetSteamNetworkingSockets(), hPeer); - } - - /// <summary> - /// <para>/ Set a name for the connection, used mostly for debugging</para> - /// </summary> - public static void SetConnectionName(HSteamNetConnection hPeer, string pszName) { - InteropHelp.TestIfAvailableClient(); - using (var pszName2 = new InteropHelp.UTF8StringHandle(pszName)) { - NativeMethods.ISteamNetworkingSockets_SetConnectionName(CSteamAPIContext.GetSteamNetworkingSockets(), hPeer, pszName2); - } - } - - /// <summary> - /// <para>/ Fetch connection name. Returns false if handle is invalid</para> - /// </summary> - public static bool GetConnectionName(HSteamNetConnection hPeer, out string pszName, int nMaxLen) { - InteropHelp.TestIfAvailableClient(); - IntPtr pszName2 = Marshal.AllocHGlobal(nMaxLen); - bool ret = NativeMethods.ISteamNetworkingSockets_GetConnectionName(CSteamAPIContext.GetSteamNetworkingSockets(), hPeer, pszName2, nMaxLen); - pszName = ret ? InteropHelp.PtrToStringUTF8(pszName2) : null; - Marshal.FreeHGlobal(pszName2); - return ret; - } - - /// <summary> - /// <para>/ Send a message to the remote host on the specified connection.</para> - /// <para>/</para> - /// <para>/ nSendFlags determines the delivery guarantees that will be provided,</para> - /// <para>/ when data should be buffered, etc. E.g. k_nSteamNetworkingSend_Unreliable</para> - /// <para>/</para> - /// <para>/ Note that the semantics we use for messages are not precisely</para> - /// <para>/ the same as the semantics of a standard "stream" socket.</para> - /// <para>/ (SOCK_STREAM) For an ordinary stream socket, the boundaries</para> - /// <para>/ between chunks are not considered relevant, and the sizes of</para> - /// <para>/ the chunks of data written will not necessarily match up to</para> - /// <para>/ the sizes of the chunks that are returned by the reads on</para> - /// <para>/ the other end. The remote host might read a partial chunk,</para> - /// <para>/ or chunks might be coalesced. For the message semantics</para> - /// <para>/ used here, however, the sizes WILL match. Each send call</para> - /// <para>/ will match a successful read call on the remote host</para> - /// <para>/ one-for-one. If you are porting existing stream-oriented</para> - /// <para>/ code to the semantics of reliable messages, your code should</para> - /// <para>/ work the same, since reliable message semantics are more</para> - /// <para>/ strict than stream semantics. The only caveat is related to</para> - /// <para>/ performance: there is per-message overhead to retain the</para> - /// <para>/ message sizes, and so if your code sends many small chunks</para> - /// <para>/ of data, performance will suffer. Any code based on stream</para> - /// <para>/ sockets that does not write excessively small chunks will</para> - /// <para>/ work without any changes.</para> - /// <para>/</para> - /// <para>/ The pOutMessageNumber is an optional pointer to receive the</para> - /// <para>/ message number assigned to the message, if sending was successful.</para> - /// <para>/</para> - /// <para>/ Returns:</para> - /// <para>/ - k_EResultInvalidParam: invalid connection handle, or the individual message is too big.</para> - /// <para>/ (See k_cbMaxSteamNetworkingSocketsMessageSizeSend)</para> - /// <para>/ - k_EResultInvalidState: connection is in an invalid state</para> - /// <para>/ - k_EResultNoConnection: connection has ended</para> - /// <para>/ - k_EResultIgnored: You used k_nSteamNetworkingSend_NoDelay, and the message was dropped because</para> - /// <para>/ we were not ready to send it.</para> - /// <para>/ - k_EResultLimitExceeded: there was already too much data queued to be sent.</para> - /// <para>/ (See k_ESteamNetworkingConfig_SendBufferSize)</para> - /// </summary> - public static EResult SendMessageToConnection(HSteamNetConnection hConn, IntPtr pData, uint cbData, int nSendFlags, out long pOutMessageNumber) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_SendMessageToConnection(CSteamAPIContext.GetSteamNetworkingSockets(), hConn, pData, cbData, nSendFlags, out pOutMessageNumber); - } - - /// <summary> - /// <para>/ Send one or more messages without copying the message payload.</para> - /// <para>/ This is the most efficient way to send messages. To use this</para> - /// <para>/ function, you must first allocate a message object using</para> - /// <para>/ ISteamNetworkingUtils::AllocateMessage. (Do not declare one</para> - /// <para>/ on the stack or allocate your own.)</para> - /// <para>/</para> - /// <para>/ You should fill in the message payload. You can either let</para> - /// <para>/ it allocate the buffer for you and then fill in the payload,</para> - /// <para>/ or if you already have a buffer allocated, you can just point</para> - /// <para>/ m_pData at your buffer and set the callback to the appropriate function</para> - /// <para>/ to free it. Note that if you use your own buffer, it MUST remain valid</para> - /// <para>/ until the callback is executed. And also note that your callback can be</para> - /// <para>/ invoked at any time from any thread (perhaps even before SendMessages</para> - /// <para>/ returns!), so it MUST be fast and threadsafe.</para> - /// <para>/</para> - /// <para>/ You MUST also fill in:</para> - /// <para>/ - m_conn - the handle of the connection to send the message to</para> - /// <para>/ - m_nFlags - bitmask of k_nSteamNetworkingSend_xxx flags.</para> - /// <para>/</para> - /// <para>/ All other fields are currently reserved and should not be modified.</para> - /// <para>/</para> - /// <para>/ The library will take ownership of the message structures. They may</para> - /// <para>/ be modified or become invalid at any time, so you must not read them</para> - /// <para>/ after passing them to this function.</para> - /// <para>/</para> - /// <para>/ pOutMessageNumberOrResult is an optional array that will receive,</para> - /// <para>/ for each message, the message number that was assigned to the message</para> - /// <para>/ if sending was successful. If sending failed, then a negative EResult</para> - /// <para>/ value is placed into the array. For example, the array will hold</para> - /// <para>/ -k_EResultInvalidState if the connection was in an invalid state.</para> - /// <para>/ See ISteamNetworkingSockets::SendMessageToConnection for possible</para> - /// <para>/ failure codes.</para> - /// </summary> - public static void SendMessages(int nMessages, SteamNetworkingMessage_t[] pMessages, long[] pOutMessageNumberOrResult) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamNetworkingSockets_SendMessages(CSteamAPIContext.GetSteamNetworkingSockets(), nMessages, pMessages, pOutMessageNumberOrResult); - } - - /// <summary> - /// <para>/ Flush any messages waiting on the Nagle timer and send them</para> - /// <para>/ at the next transmission opportunity (often that means right now).</para> - /// <para>/</para> - /// <para>/ If Nagle is enabled (it's on by default) then when calling</para> - /// <para>/ SendMessageToConnection the message will be buffered, up to the Nagle time</para> - /// <para>/ before being sent, to merge small messages into the same packet.</para> - /// <para>/ (See k_ESteamNetworkingConfig_NagleTime)</para> - /// <para>/</para> - /// <para>/ Returns:</para> - /// <para>/ k_EResultInvalidParam: invalid connection handle</para> - /// <para>/ k_EResultInvalidState: connection is in an invalid state</para> - /// <para>/ k_EResultNoConnection: connection has ended</para> - /// <para>/ k_EResultIgnored: We weren't (yet) connected, so this operation has no effect.</para> - /// </summary> - public static EResult FlushMessagesOnConnection(HSteamNetConnection hConn) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_FlushMessagesOnConnection(CSteamAPIContext.GetSteamNetworkingSockets(), hConn); - } - - /// <summary> - /// <para>/ Fetch the next available message(s) from the connection, if any.</para> - /// <para>/ Returns the number of messages returned into your array, up to nMaxMessages.</para> - /// <para>/ If the connection handle is invalid, -1 is returned.</para> - /// <para>/</para> - /// <para>/ The order of the messages returned in the array is relevant.</para> - /// <para>/ Reliable messages will be received in the order they were sent (and with the</para> - /// <para>/ same sizes --- see SendMessageToConnection for on this subtle difference from a stream socket).</para> - /// <para>/</para> - /// <para>/ Unreliable messages may be dropped, or delivered out of order with respect to</para> - /// <para>/ each other or with respect to reliable messages. The same unreliable message</para> - /// <para>/ may be received multiple times.</para> - /// <para>/</para> - /// <para>/ If any messages are returned, you MUST call SteamNetworkingMessage_t::Release() on each</para> - /// <para>/ of them free up resources after you are done. It is safe to keep the object alive for</para> - /// <para>/ a little while (put it into some queue, etc), and you may call Release() from any thread.</para> - /// </summary> - public static int ReceiveMessagesOnConnection(HSteamNetConnection hConn, IntPtr[] ppOutMessages, int nMaxMessages) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_ReceiveMessagesOnConnection(CSteamAPIContext.GetSteamNetworkingSockets(), hConn, ppOutMessages, nMaxMessages); - } - - /// <summary> - /// <para>/ Returns basic information about the high-level state of the connection.</para> - /// </summary> - public static bool GetConnectionInfo(HSteamNetConnection hConn, out SteamNetConnectionInfo_t pInfo) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_GetConnectionInfo(CSteamAPIContext.GetSteamNetworkingSockets(), hConn, out pInfo); - } - - /// <summary> - /// <para>/ Returns a small set of information about the real-time state of the connection</para> - /// <para>/ and the queue status of each lane.</para> - /// <para>/</para> - /// <para>/ - pStatus may be NULL if the information is not desired. (E.g. you are only interested</para> - /// <para>/ in the lane information.)</para> - /// <para>/ - On entry, nLanes specifies the length of the pLanes array. This may be 0</para> - /// <para>/ if you do not wish to receive any lane data. It's OK for this to be smaller than</para> - /// <para>/ the total number of configured lanes.</para> - /// <para>/ - pLanes points to an array that will receive lane-specific info. It can be NULL</para> - /// <para>/ if this is not needed.</para> - /// <para>/</para> - /// <para>/ Return value:</para> - /// <para>/ - k_EResultNoConnection - connection handle is invalid or connection has been closed.</para> - /// <para>/ - k_EResultInvalidParam - nLanes is bad</para> - /// </summary> - public static EResult GetConnectionRealTimeStatus(HSteamNetConnection hConn, ref SteamNetConnectionRealTimeStatus_t pStatus, int nLanes, ref SteamNetConnectionRealTimeLaneStatus_t pLanes) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_GetConnectionRealTimeStatus(CSteamAPIContext.GetSteamNetworkingSockets(), hConn, ref pStatus, nLanes, ref pLanes); - } - - /// <summary> - /// <para>/ Returns detailed connection stats in text format. Useful</para> - /// <para>/ for dumping to a log, etc.</para> - /// <para>/</para> - /// <para>/ Returns:</para> - /// <para>/ -1 failure (bad connection handle)</para> - /// <para>/ 0 OK, your buffer was filled in and '\0'-terminated</para> - /// <para>/ >0 Your buffer was either nullptr, or it was too small and the text got truncated.</para> - /// <para>/ Try again with a buffer of at least N bytes.</para> - /// </summary> - public static int GetDetailedConnectionStatus(HSteamNetConnection hConn, out string pszBuf, int cbBuf) { - InteropHelp.TestIfAvailableClient(); - IntPtr pszBuf2 = Marshal.AllocHGlobal(cbBuf); - int ret = NativeMethods.ISteamNetworkingSockets_GetDetailedConnectionStatus(CSteamAPIContext.GetSteamNetworkingSockets(), hConn, pszBuf2, cbBuf); - pszBuf = ret != -1 ? InteropHelp.PtrToStringUTF8(pszBuf2) : null; - Marshal.FreeHGlobal(pszBuf2); - return ret; - } - - /// <summary> - /// <para>/ Returns local IP and port that a listen socket created using CreateListenSocketIP is bound to.</para> - /// <para>/</para> - /// <para>/ An IPv6 address of ::0 means "any IPv4 or IPv6"</para> - /// <para>/ An IPv6 address of ::ffff:0000:0000 means "any IPv4"</para> - /// </summary> - public static bool GetListenSocketAddress(HSteamListenSocket hSocket, out SteamNetworkingIPAddr address) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_GetListenSocketAddress(CSteamAPIContext.GetSteamNetworkingSockets(), hSocket, out address); - } - - /// <summary> - /// <para>/ Create a pair of connections that are talking to each other, e.g. a loopback connection.</para> - /// <para>/ This is very useful for testing, or so that your client/server code can work the same</para> - /// <para>/ even when you are running a local "server".</para> - /// <para>/</para> - /// <para>/ The two connections will immediately be placed into the connected state, and no callbacks</para> - /// <para>/ will be posted immediately. After this, if you close either connection, the other connection</para> - /// <para>/ will receive a callback, exactly as if they were communicating over the network. You must</para> - /// <para>/ close *both* sides in order to fully clean up the resources!</para> - /// <para>/</para> - /// <para>/ By default, internal buffers are used, completely bypassing the network, the chopping up of</para> - /// <para>/ messages into packets, encryption, copying the payload, etc. This means that loopback</para> - /// <para>/ packets, by default, will not simulate lag or loss. Passing true for bUseNetworkLoopback will</para> - /// <para>/ cause the socket pair to send packets through the local network loopback device (127.0.0.1)</para> - /// <para>/ on ephemeral ports. Fake lag and loss are supported in this case, and CPU time is expended</para> - /// <para>/ to encrypt and decrypt.</para> - /// <para>/</para> - /// <para>/ If you wish to assign a specific identity to either connection, you may pass a particular</para> - /// <para>/ identity. Otherwise, if you pass nullptr, the respective connection will assume a generic</para> - /// <para>/ "localhost" identity. If you use real network loopback, this might be translated to the</para> - /// <para>/ actual bound loopback port. Otherwise, the port will be zero.</para> - /// </summary> - public static bool CreateSocketPair(out HSteamNetConnection pOutConnection1, out HSteamNetConnection pOutConnection2, bool bUseNetworkLoopback, ref SteamNetworkingIdentity pIdentity1, ref SteamNetworkingIdentity pIdentity2) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_CreateSocketPair(CSteamAPIContext.GetSteamNetworkingSockets(), out pOutConnection1, out pOutConnection2, bUseNetworkLoopback, ref pIdentity1, ref pIdentity2); - } - - /// <summary> - /// <para>/ Configure multiple outbound messages streams ("lanes") on a connection, and</para> - /// <para>/ control head-of-line blocking between them. Messages within a given lane</para> - /// <para>/ are always sent in the order they are queued, but messages from different</para> - /// <para>/ lanes may be sent out of order. Each lane has its own message number</para> - /// <para>/ sequence. The first message sent on each lane will be assigned the number 1.</para> - /// <para>/</para> - /// <para>/ Each lane has a "priority". Lower priority lanes will only be processed</para> - /// <para>/ when all higher-priority lanes are empty. The magnitudes of the priority</para> - /// <para>/ values are not relevant, only their sort order. Higher numeric values</para> - /// <para>/ take priority over lower numeric values.</para> - /// <para>/</para> - /// <para>/ Each lane also is assigned a weight, which controls the approximate proportion</para> - /// <para>/ of the bandwidth that will be consumed by the lane, relative to other lanes</para> - /// <para>/ of the same priority. (This is assuming the lane stays busy. An idle lane</para> - /// <para>/ does not build up "credits" to be be spent once a message is queued.)</para> - /// <para>/ This value is only meaningful as a proportion, relative to other lanes with</para> - /// <para>/ the same priority. For lanes with different priorities, the strict priority</para> - /// <para>/ order will prevail, and their weights relative to each other are not relevant.</para> - /// <para>/ Thus, if a lane has a unique priority value, the weight value for that lane is</para> - /// <para>/ not relevant.</para> - /// <para>/</para> - /// <para>/ Example: 3 lanes, with priorities [ 0, 10, 10 ] and weights [ (NA), 20, 5 ].</para> - /// <para>/ Messages sent on the first will always be sent first, before messages in the</para> - /// <para>/ other two lanes. Its weight value is irrelevant, since there are no other</para> - /// <para>/ lanes with priority=0. The other two lanes will share bandwidth, with the second</para> - /// <para>/ and third lanes sharing bandwidth using a ratio of approximately 4:1.</para> - /// <para>/ (The weights [ NA, 4, 1 ] would be equivalent.)</para> - /// <para>/</para> - /// <para>/ Notes:</para> - /// <para>/ - At the time of this writing, some code has performance cost that is linear</para> - /// <para>/ in the number of lanes, so keep the number of lanes to an absolute minimum.</para> - /// <para>/ 3 or so is fine; >8 is a lot. The max number of lanes on Steam is 255,</para> - /// <para>/ which is a very large number and not recommended! If you are compiling this</para> - /// <para>/ library from source, see STEAMNETWORKINGSOCKETS_MAX_LANES.)</para> - /// <para>/ - Lane priority values may be any int. Their absolute value is not relevant,</para> - /// <para>/ only the order matters.</para> - /// <para>/ - Weights must be positive, and due to implementation details, they are restricted</para> - /// <para>/ to 16-bit values. The absolute magnitudes don't matter, just the proportions.</para> - /// <para>/ - Messages sent on a lane index other than 0 have a small overhead on the wire,</para> - /// <para>/ so for maximum wire efficiency, lane 0 should be the "most common" lane, regardless</para> - /// <para>/ of priorities or weights.</para> - /// <para>/ - A connection has a single lane by default. Calling this function with</para> - /// <para>/ nNumLanes=1 is legal, but pointless, since the priority and weight values are</para> - /// <para>/ irrelevant in that case.</para> - /// <para>/ - You may reconfigure connection lanes at any time, however reducing the number of</para> - /// <para>/ lanes is not allowed.</para> - /// <para>/ - Reconfiguring lanes might restart any bandwidth sharing balancing. Usually you</para> - /// <para>/ will call this function once, near the start of the connection, perhaps after</para> - /// <para>/ exchanging a few messages.</para> - /// <para>/ - To assign all lanes the same priority, you may use pLanePriorities=NULL.</para> - /// <para>/ - If you wish all lanes with the same priority to share bandwidth equally (or</para> - /// <para>/ if no two lanes have the same priority value, and thus priority values are</para> - /// <para>/ irrelevant), you may use pLaneWeights=NULL</para> - /// <para>/ - Priorities and weights determine the order that messages are SENT on the wire.</para> - /// <para>/ There are NO GUARANTEES on the order that messages are RECEIVED! Due to packet</para> - /// <para>/ loss, out-of-order delivery, and subtle details of packet serialization, messages</para> - /// <para>/ might still be received slightly out-of-order! The *only* strong guarantee is that</para> - /// <para>/ *reliable* messages on the *same lane* will be delivered in the order they are sent.</para> - /// <para>/ - Each host configures the lanes for the packets they send; the lanes for the flow</para> - /// <para>/ in one direction are completely unrelated to the lanes in the opposite direction.</para> - /// <para>/</para> - /// <para>/ Return value:</para> - /// <para>/ - k_EResultNoConnection - bad hConn</para> - /// <para>/ - k_EResultInvalidParam - Invalid number of lanes, bad weights, or you tried to reduce the number of lanes</para> - /// <para>/ - k_EResultInvalidState - Connection is already dead, etc</para> - /// <para>/</para> - /// <para>/ See also:</para> - /// <para>/ SteamNetworkingMessage_t::m_idxLane</para> - /// </summary> - public static EResult ConfigureConnectionLanes(HSteamNetConnection hConn, int nNumLanes, out int pLanePriorities, out ushort pLaneWeights) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_ConfigureConnectionLanes(CSteamAPIContext.GetSteamNetworkingSockets(), hConn, nNumLanes, out pLanePriorities, out pLaneWeights); - } - - /// <summary> - /// <para> Identity and authentication</para> - /// <para>/ Get the identity assigned to this interface.</para> - /// <para>/ E.g. on Steam, this is the user's SteamID, or for the gameserver interface, the SteamID assigned</para> - /// <para>/ to the gameserver. Returns false and sets the result to an invalid identity if we don't know</para> - /// <para>/ our identity yet. (E.g. GameServer has not logged in. On Steam, the user will know their SteamID</para> - /// <para>/ even if they are not signed into Steam.)</para> - /// </summary> - public static bool GetIdentity(out SteamNetworkingIdentity pIdentity) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_GetIdentity(CSteamAPIContext.GetSteamNetworkingSockets(), out pIdentity); - } - - /// <summary> - /// <para>/ Indicate our desire to be ready participate in authenticated communications.</para> - /// <para>/ If we are currently not ready, then steps will be taken to obtain the necessary</para> - /// <para>/ certificates. (This includes a certificate for us, as well as any CA certificates</para> - /// <para>/ needed to authenticate peers.)</para> - /// <para>/</para> - /// <para>/ You can call this at program init time if you know that you are going to</para> - /// <para>/ be making authenticated connections, so that we will be ready immediately when</para> - /// <para>/ those connections are attempted. (Note that essentially all connections require</para> - /// <para>/ authentication, with the exception of ordinary UDP connections with authentication</para> - /// <para>/ disabled using k_ESteamNetworkingConfig_IP_AllowWithoutAuth.) If you don't call</para> - /// <para>/ this function, we will wait until a feature is utilized that that necessitates</para> - /// <para>/ these resources.</para> - /// <para>/</para> - /// <para>/ You can also call this function to force a retry, if failure has occurred.</para> - /// <para>/ Once we make an attempt and fail, we will not automatically retry.</para> - /// <para>/ In this respect, the behavior of the system after trying and failing is the same</para> - /// <para>/ as before the first attempt: attempting authenticated communication or calling</para> - /// <para>/ this function will call the system to attempt to acquire the necessary resources.</para> - /// <para>/</para> - /// <para>/ You can use GetAuthenticationStatus or listen for SteamNetAuthenticationStatus_t</para> - /// <para>/ to monitor the status.</para> - /// <para>/</para> - /// <para>/ Returns the current value that would be returned from GetAuthenticationStatus.</para> - /// </summary> - public static ESteamNetworkingAvailability InitAuthentication() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_InitAuthentication(CSteamAPIContext.GetSteamNetworkingSockets()); - } - - /// <summary> - /// <para>/ Query our readiness to participate in authenticated communications. A</para> - /// <para>/ SteamNetAuthenticationStatus_t callback is posted any time this status changes,</para> - /// <para>/ but you can use this function to query it at any time.</para> - /// <para>/</para> - /// <para>/ The value of SteamNetAuthenticationStatus_t::m_eAvail is returned. If you only</para> - /// <para>/ want this high level status, you can pass NULL for pDetails. If you want further</para> - /// <para>/ details, pass non-NULL to receive them.</para> - /// </summary> - public static ESteamNetworkingAvailability GetAuthenticationStatus(out SteamNetAuthenticationStatus_t pDetails) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_GetAuthenticationStatus(CSteamAPIContext.GetSteamNetworkingSockets(), out pDetails); - } - - /// <summary> - /// <para> Poll groups. A poll group is a set of connections that can be polled efficiently.</para> - /// <para> (In our API, to "poll" a connection means to retrieve all pending messages. We</para> - /// <para> actually don't have an API to "poll" the connection *state*, like BSD sockets.)</para> - /// <para>/ Create a new poll group.</para> - /// <para>/</para> - /// <para>/ You should destroy the poll group when you are done using DestroyPollGroup</para> - /// </summary> - public static HSteamNetPollGroup CreatePollGroup() { - InteropHelp.TestIfAvailableClient(); - return (HSteamNetPollGroup)NativeMethods.ISteamNetworkingSockets_CreatePollGroup(CSteamAPIContext.GetSteamNetworkingSockets()); - } - - /// <summary> - /// <para>/ Destroy a poll group created with CreatePollGroup().</para> - /// <para>/</para> - /// <para>/ If there are any connections in the poll group, they are removed from the group,</para> - /// <para>/ and left in a state where they are not part of any poll group.</para> - /// <para>/ Returns false if passed an invalid poll group handle.</para> - /// </summary> - public static bool DestroyPollGroup(HSteamNetPollGroup hPollGroup) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_DestroyPollGroup(CSteamAPIContext.GetSteamNetworkingSockets(), hPollGroup); - } - - /// <summary> - /// <para>/ Assign a connection to a poll group. Note that a connection may only belong to a</para> - /// <para>/ single poll group. Adding a connection to a poll group implicitly removes it from</para> - /// <para>/ any other poll group it is in.</para> - /// <para>/</para> - /// <para>/ You can pass k_HSteamNetPollGroup_Invalid to remove a connection from its current</para> - /// <para>/ poll group without adding it to a new poll group.</para> - /// <para>/</para> - /// <para>/ If there are received messages currently pending on the connection, an attempt</para> - /// <para>/ is made to add them to the queue of messages for the poll group in approximately</para> - /// <para>/ the order that would have applied if the connection was already part of the poll</para> - /// <para>/ group at the time that the messages were received.</para> - /// <para>/</para> - /// <para>/ Returns false if the connection handle is invalid, or if the poll group handle</para> - /// <para>/ is invalid (and not k_HSteamNetPollGroup_Invalid).</para> - /// </summary> - public static bool SetConnectionPollGroup(HSteamNetConnection hConn, HSteamNetPollGroup hPollGroup) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_SetConnectionPollGroup(CSteamAPIContext.GetSteamNetworkingSockets(), hConn, hPollGroup); - } - - /// <summary> - /// <para>/ Same as ReceiveMessagesOnConnection, but will return the next messages available</para> - /// <para>/ on any connection in the poll group. Examine SteamNetworkingMessage_t::m_conn</para> - /// <para>/ to know which connection. (SteamNetworkingMessage_t::m_nConnUserData might also</para> - /// <para>/ be useful.)</para> - /// <para>/</para> - /// <para>/ Delivery order of messages among different connections will usually match the</para> - /// <para>/ order that the last packet was received which completed the message. But this</para> - /// <para>/ is not a strong guarantee, especially for packets received right as a connection</para> - /// <para>/ is being assigned to poll group.</para> - /// <para>/</para> - /// <para>/ Delivery order of messages on the same connection is well defined and the</para> - /// <para>/ same guarantees are present as mentioned in ReceiveMessagesOnConnection.</para> - /// <para>/ (But the messages are not grouped by connection, so they will not necessarily</para> - /// <para>/ appear consecutively in the list; they may be interleaved with messages for</para> - /// <para>/ other connections.)</para> - /// </summary> - public static int ReceiveMessagesOnPollGroup(HSteamNetPollGroup hPollGroup, IntPtr[] ppOutMessages, int nMaxMessages) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_ReceiveMessagesOnPollGroup(CSteamAPIContext.GetSteamNetworkingSockets(), hPollGroup, ppOutMessages, nMaxMessages); - } - - /// <summary> - /// <para> Clients connecting to dedicated servers hosted in a data center,</para> - /// <para> using tickets issued by your game coordinator. If you are not</para> - /// <para> issuing your own tickets to restrict who can attempt to connect</para> - /// <para> to your server, then you won't use these functions.</para> - /// <para>/ Call this when you receive a ticket from your backend / matchmaking system. Puts the</para> - /// <para>/ ticket into a persistent cache, and optionally returns the parsed ticket.</para> - /// <para>/</para> - /// <para>/ See stamdatagram_ticketgen.h for more details.</para> - /// </summary> - public static bool ReceivedRelayAuthTicket(IntPtr pvTicket, int cbTicket, out SteamDatagramRelayAuthTicket pOutParsedTicket) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_ReceivedRelayAuthTicket(CSteamAPIContext.GetSteamNetworkingSockets(), pvTicket, cbTicket, out pOutParsedTicket); - } - - /// <summary> - /// <para>/ Search cache for a ticket to talk to the server on the specified virtual port.</para> - /// <para>/ If found, returns the number of seconds until the ticket expires, and optionally</para> - /// <para>/ the complete cracked ticket. Returns 0 if we don't have a ticket.</para> - /// <para>/</para> - /// <para>/ Typically this is useful just to confirm that you have a ticket, before you</para> - /// <para>/ call ConnectToHostedDedicatedServer to connect to the server.</para> - /// </summary> - public static int FindRelayAuthTicketForServer(ref SteamNetworkingIdentity identityGameServer, int nRemoteVirtualPort, out SteamDatagramRelayAuthTicket pOutParsedTicket) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_FindRelayAuthTicketForServer(CSteamAPIContext.GetSteamNetworkingSockets(), ref identityGameServer, nRemoteVirtualPort, out pOutParsedTicket); - } - - /// <summary> - /// <para>/ Client call to connect to a server hosted in a Valve data center, on the specified virtual</para> - /// <para>/ port. You must have placed a ticket for this server into the cache, or else this connect</para> - /// <para>/ attempt will fail! If you are not issuing your own tickets, then to connect to a dedicated</para> - /// <para>/ server via SDR in auto-ticket mode, use ConnectP2P. (The server must be configured to allow</para> - /// <para>/ this type of connection by listening using CreateListenSocketP2P.)</para> - /// <para>/</para> - /// <para>/ You may wonder why tickets are stored in a cache, instead of simply being passed as an argument</para> - /// <para>/ here. The reason is to make reconnection to a gameserver robust, even if the client computer loses</para> - /// <para>/ connection to Steam or the central backend, or the app is restarted or crashes, etc.</para> - /// <para>/</para> - /// <para>/ If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess()</para> - /// <para>/ when your app initializes</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// </summary> - public static HSteamNetConnection ConnectToHostedDedicatedServer(ref SteamNetworkingIdentity identityTarget, int nRemoteVirtualPort, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableClient(); - return (HSteamNetConnection)NativeMethods.ISteamNetworkingSockets_ConnectToHostedDedicatedServer(CSteamAPIContext.GetSteamNetworkingSockets(), ref identityTarget, nRemoteVirtualPort, nOptions, pOptions); - } - - /// <summary> - /// <para> Servers hosted in data centers known to the Valve relay network</para> - /// <para>/ Returns the value of the SDR_LISTEN_PORT environment variable. This</para> - /// <para>/ is the UDP server your server will be listening on. This will</para> - /// <para>/ configured automatically for you in production environments.</para> - /// <para>/</para> - /// <para>/ In development, you'll need to set it yourself. See</para> - /// <para>/ https://partner.steamgames.com/doc/api/ISteamNetworkingSockets</para> - /// <para>/ for more information on how to configure dev environments.</para> - /// </summary> - public static ushort GetHostedDedicatedServerPort() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_GetHostedDedicatedServerPort(CSteamAPIContext.GetSteamNetworkingSockets()); - } - - /// <summary> - /// <para>/ Returns 0 if SDR_LISTEN_PORT is not set. Otherwise, returns the data center the server</para> - /// <para>/ is running in. This will be k_SteamDatagramPOPID_dev in non-production environment.</para> - /// </summary> - public static SteamNetworkingPOPID GetHostedDedicatedServerPOPID() { - InteropHelp.TestIfAvailableClient(); - return (SteamNetworkingPOPID)NativeMethods.ISteamNetworkingSockets_GetHostedDedicatedServerPOPID(CSteamAPIContext.GetSteamNetworkingSockets()); - } - - /// <summary> - /// <para>/ Return info about the hosted server. This contains the PoPID of the server,</para> - /// <para>/ and opaque routing information that can be used by the relays to send traffic</para> - /// <para>/ to your server.</para> - /// <para>/</para> - /// <para>/ You will need to send this information to your backend, and put it in tickets,</para> - /// <para>/ so that the relays will know how to forward traffic from</para> - /// <para>/ clients to your server. See SteamDatagramRelayAuthTicket for more info.</para> - /// <para>/</para> - /// <para>/ Also, note that the routing information is contained in SteamDatagramGameCoordinatorServerLogin,</para> - /// <para>/ so if possible, it's preferred to use GetGameCoordinatorServerLogin to send this info</para> - /// <para>/ to your game coordinator service, and also login securely at the same time.</para> - /// <para>/</para> - /// <para>/ On a successful exit, k_EResultOK is returned</para> - /// <para>/</para> - /// <para>/ Unsuccessful exit:</para> - /// <para>/ - Something other than k_EResultOK is returned.</para> - /// <para>/ - k_EResultInvalidState: We are not configured to listen for SDR (SDR_LISTEN_SOCKET</para> - /// <para>/ is not set.)</para> - /// <para>/ - k_EResultPending: we do not (yet) have the authentication information needed.</para> - /// <para>/ (See GetAuthenticationStatus.) If you use environment variables to pre-fetch</para> - /// <para>/ the network config, this data should always be available immediately.</para> - /// <para>/ - A non-localized diagnostic debug message will be placed in m_data that describes</para> - /// <para>/ the cause of the failure.</para> - /// <para>/</para> - /// <para>/ NOTE: The returned blob is not encrypted. Send it to your backend, but don't</para> - /// <para>/ directly share it with clients.</para> - /// </summary> - public static EResult GetHostedDedicatedServerAddress(out SteamDatagramHostedAddress pRouting) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_GetHostedDedicatedServerAddress(CSteamAPIContext.GetSteamNetworkingSockets(), out pRouting); - } - - /// <summary> - /// <para>/ Create a listen socket on the specified virtual port. The physical UDP port to use</para> - /// <para>/ will be determined by the SDR_LISTEN_PORT environment variable. If a UDP port is not</para> - /// <para>/ configured, this call will fail.</para> - /// <para>/</para> - /// <para>/ This call MUST be made through the SteamGameServerNetworkingSockets() interface.</para> - /// <para>/</para> - /// <para>/ This function should be used when you are using the ticket generator library</para> - /// <para>/ to issue your own tickets. Clients connecting to the server on this virtual</para> - /// <para>/ port will need a ticket, and they must connect using ConnectToHostedDedicatedServer.</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// </summary> - public static HSteamListenSocket CreateHostedDedicatedServerListenSocket(int nLocalVirtualPort, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableClient(); - return (HSteamListenSocket)NativeMethods.ISteamNetworkingSockets_CreateHostedDedicatedServerListenSocket(CSteamAPIContext.GetSteamNetworkingSockets(), nLocalVirtualPort, nOptions, pOptions); - } - - /// <summary> - /// <para>/ Generate an authentication blob that can be used to securely login with</para> - /// <para>/ your backend, using SteamDatagram_ParseHostedServerLogin. (See</para> - /// <para>/ steamdatagram_gamecoordinator.h)</para> - /// <para>/</para> - /// <para>/ Before calling the function:</para> - /// <para>/ - Populate the app data in pLoginInfo (m_cbAppData and m_appData). You can leave</para> - /// <para>/ all other fields uninitialized.</para> - /// <para>/ - *pcbSignedBlob contains the size of the buffer at pBlob. (It should be</para> - /// <para>/ at least k_cbMaxSteamDatagramGameCoordinatorServerLoginSerialized.)</para> - /// <para>/</para> - /// <para>/ On a successful exit:</para> - /// <para>/ - k_EResultOK is returned</para> - /// <para>/ - All of the remaining fields of pLoginInfo will be filled out.</para> - /// <para>/ - *pcbSignedBlob contains the size of the serialized blob that has been</para> - /// <para>/ placed into pBlob.</para> - /// <para>/</para> - /// <para>/ Unsuccessful exit:</para> - /// <para>/ - Something other than k_EResultOK is returned.</para> - /// <para>/ - k_EResultNotLoggedOn: you are not logged in (yet)</para> - /// <para>/ - See GetHostedDedicatedServerAddress for more potential failure return values.</para> - /// <para>/ - A non-localized diagnostic debug message will be placed in pBlob that describes</para> - /// <para>/ the cause of the failure.</para> - /// <para>/</para> - /// <para>/ This works by signing the contents of the SteamDatagramGameCoordinatorServerLogin</para> - /// <para>/ with the cert that is issued to this server. In dev environments, it's OK if you do</para> - /// <para>/ not have a cert. (You will need to enable insecure dev login in SteamDatagram_ParseHostedServerLogin.)</para> - /// <para>/ Otherwise, you will need a signed cert.</para> - /// <para>/</para> - /// <para>/ NOTE: The routing blob returned here is not encrypted. Send it to your backend</para> - /// <para>/ and don't share it directly with clients.</para> - /// </summary> - public static EResult GetGameCoordinatorServerLogin(IntPtr pLoginInfo, out int pcbSignedBlob, IntPtr pBlob) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_GetGameCoordinatorServerLogin(CSteamAPIContext.GetSteamNetworkingSockets(), pLoginInfo, out pcbSignedBlob, pBlob); - } - - /// <summary> - /// <para> Relayed connections using custom signaling protocol</para> - /// <para> This is used if you have your own method of sending out-of-band</para> - /// <para> signaling / rendezvous messages through a mutually trusted channel.</para> - /// <para>/ Create a P2P "client" connection that does signaling over a custom</para> - /// <para>/ rendezvous/signaling channel.</para> - /// <para>/</para> - /// <para>/ pSignaling points to a new object that you create just for this connection.</para> - /// <para>/ It must stay valid until Release() is called. Once you pass the</para> - /// <para>/ object to this function, it assumes ownership. Release() will be called</para> - /// <para>/ from within the function call if the call fails. Furthermore, until Release()</para> - /// <para>/ is called, you should be prepared for methods to be invoked on your</para> - /// <para>/ object from any thread! You need to make sure your object is threadsafe!</para> - /// <para>/ Furthermore, you should make sure that dispatching the methods is done</para> - /// <para>/ as quickly as possible.</para> - /// <para>/</para> - /// <para>/ This function will immediately construct a connection in the "connecting"</para> - /// <para>/ state. Soon after (perhaps before this function returns, perhaps in another thread),</para> - /// <para>/ the connection will begin sending signaling messages by calling</para> - /// <para>/ ISteamNetworkingConnectionSignaling::SendSignal.</para> - /// <para>/</para> - /// <para>/ When the remote peer accepts the connection (See</para> - /// <para>/ ISteamNetworkingSignalingRecvContext::OnConnectRequest),</para> - /// <para>/ it will begin sending signaling messages. When these messages are received,</para> - /// <para>/ you can pass them to the connection using ReceivedP2PCustomSignal.</para> - /// <para>/</para> - /// <para>/ If you know the identity of the peer that you expect to be on the other end,</para> - /// <para>/ you can pass their identity to improve debug output or just detect bugs.</para> - /// <para>/ If you don't know their identity yet, you can pass NULL, and their</para> - /// <para>/ identity will be established in the connection handshake.</para> - /// <para>/</para> - /// <para>/ If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess()</para> - /// <para>/ when your app initializes</para> - /// <para>/</para> - /// <para>/ If you need to set any initial config options, pass them here. See</para> - /// <para>/ SteamNetworkingConfigValue_t for more about why this is preferable to</para> - /// <para>/ setting the options "immediately" after creation.</para> - /// </summary> - public static HSteamNetConnection ConnectP2PCustomSignaling(out ISteamNetworkingConnectionSignaling pSignaling, ref SteamNetworkingIdentity pPeerIdentity, int nRemoteVirtualPort, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableClient(); - return (HSteamNetConnection)NativeMethods.ISteamNetworkingSockets_ConnectP2PCustomSignaling(CSteamAPIContext.GetSteamNetworkingSockets(), out pSignaling, ref pPeerIdentity, nRemoteVirtualPort, nOptions, pOptions); - } - - /// <summary> - /// <para>/ Called when custom signaling has received a message. When your</para> - /// <para>/ signaling channel receives a message, it should save off whatever</para> - /// <para>/ routing information was in the envelope into the context object,</para> - /// <para>/ and then pass the payload to this function.</para> - /// <para>/</para> - /// <para>/ A few different things can happen next, depending on the message:</para> - /// <para>/</para> - /// <para>/ - If the signal is associated with existing connection, it is dealt</para> - /// <para>/ with immediately. If any replies need to be sent, they will be</para> - /// <para>/ dispatched using the ISteamNetworkingConnectionSignaling</para> - /// <para>/ associated with the connection.</para> - /// <para>/ - If the message represents a connection request (and the request</para> - /// <para>/ is not redundant for an existing connection), a new connection</para> - /// <para>/ will be created, and ReceivedConnectRequest will be called on your</para> - /// <para>/ context object to determine how to proceed.</para> - /// <para>/ - Otherwise, the message is for a connection that does not</para> - /// <para>/ exist (anymore). In this case, we *may* call SendRejectionReply</para> - /// <para>/ on your context object.</para> - /// <para>/</para> - /// <para>/ In any case, we will not save off pContext or access it after this</para> - /// <para>/ function returns.</para> - /// <para>/</para> - /// <para>/ Returns true if the message was parsed and dispatched without anything</para> - /// <para>/ unusual or suspicious happening. Returns false if there was some problem</para> - /// <para>/ with the message that prevented ordinary handling. (Debug output will</para> - /// <para>/ usually have more information.)</para> - /// <para>/</para> - /// <para>/ If you expect to be using relayed connections, then you probably want</para> - /// <para>/ to call ISteamNetworkingUtils::InitRelayNetworkAccess() when your app initializes</para> - /// </summary> - public static bool ReceivedP2PCustomSignal(IntPtr pMsg, int cbMsg, out ISteamNetworkingSignalingRecvContext pContext) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_ReceivedP2PCustomSignal(CSteamAPIContext.GetSteamNetworkingSockets(), pMsg, cbMsg, out pContext); - } - - /// <summary> - /// <para> Certificate provision by the application. On Steam, we normally handle all this automatically</para> - /// <para> and you will not need to use these advanced functions.</para> - /// <para>/ Get blob that describes a certificate request. You can send this to your game coordinator.</para> - /// <para>/ Upon entry, *pcbBlob should contain the size of the buffer. On successful exit, it will</para> - /// <para>/ return the number of bytes that were populated. You can pass pBlob=NULL to query for the required</para> - /// <para>/ size. (512 bytes is a conservative estimate.)</para> - /// <para>/</para> - /// <para>/ Pass this blob to your game coordinator and call SteamDatagram_CreateCert.</para> - /// </summary> - public static bool GetCertificateRequest(out int pcbBlob, IntPtr pBlob, out SteamNetworkingErrMsg errMsg) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_GetCertificateRequest(CSteamAPIContext.GetSteamNetworkingSockets(), out pcbBlob, pBlob, out errMsg); - } - - /// <summary> - /// <para>/ Set the certificate. The certificate blob should be the output of</para> - /// <para>/ SteamDatagram_CreateCert.</para> - /// </summary> - public static bool SetCertificate(IntPtr pCertificate, int cbCertificate, out SteamNetworkingErrMsg errMsg) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_SetCertificate(CSteamAPIContext.GetSteamNetworkingSockets(), pCertificate, cbCertificate, out errMsg); - } - - /// <summary> - /// <para>/ Reset the identity associated with this instance.</para> - /// <para>/ Any open connections are closed. Any previous certificates, etc are discarded.</para> - /// <para>/ You can pass a specific identity that you want to use, or you can pass NULL,</para> - /// <para>/ in which case the identity will be invalid until you set it using SetCertificate</para> - /// <para>/</para> - /// <para>/ NOTE: This function is not actually supported on Steam! It is included</para> - /// <para>/ for use on other platforms where the active user can sign out and</para> - /// <para>/ a new user can sign in.</para> - /// </summary> - public static void ResetIdentity(ref SteamNetworkingIdentity pIdentity) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamNetworkingSockets_ResetIdentity(CSteamAPIContext.GetSteamNetworkingSockets(), ref pIdentity); - } - - /// <summary> - /// <para> Misc</para> - /// <para>/ Invoke all callback functions queued for this interface.</para> - /// <para>/ See k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, etc</para> - /// <para>/</para> - /// <para>/ You don't need to call this if you are using Steam's callback dispatch</para> - /// <para>/ mechanism (SteamAPI_RunCallbacks and SteamGameserver_RunCallbacks).</para> - /// </summary> - public static void RunCallbacks() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamNetworkingSockets_RunCallbacks(CSteamAPIContext.GetSteamNetworkingSockets()); - } - - /// <summary> - /// <para> "FakeIP" system.</para> - /// <para> A FakeIP is essentially a temporary, arbitrary identifier that</para> - /// <para> happens to be a valid IPv4 address. The purpose of this system is to make it</para> - /// <para> easy to integrate with existing code that identifies hosts using IPv4 addresses.</para> - /// <para> The FakeIP address will never actually be used to send or receive any packets</para> - /// <para> on the Internet, it is strictly an identifier.</para> - /// <para> FakeIP addresses are designed to (hopefully) pass through existing code as</para> - /// <para> transparently as possible, while conflicting with "real" addresses that might</para> - /// <para> be in use on networks (both the Internet and LANs) in the same code as little</para> - /// <para> as possible. At the time this comment is being written, they come from the</para> - /// <para> 169.254.0.0/16 range, and the port number will always be >1024. HOWEVER,</para> - /// <para> this is subject to change! Do not make assumptions about these addresses,</para> - /// <para> or your code might break in the future. In particular, you should use</para> - /// <para> functions such as ISteamNetworkingUtils::IsFakeIP to determine if an IP</para> - /// <para> address is a "fake" one used by this system.</para> - /// <para>/ Begin asynchronous process of allocating a fake IPv4 address that other</para> - /// <para>/ peers can use to contact us via P2P. IP addresses returned by this</para> - /// <para>/ function are globally unique for a given appid.</para> - /// <para>/</para> - /// <para>/ nNumPorts is the numbers of ports you wish to reserve. This is useful</para> - /// <para>/ for the same reason that listening on multiple UDP ports is useful for</para> - /// <para>/ different types of traffic. Because these allocations come from a global</para> - /// <para>/ namespace, there is a relatively strict limit on the maximum number of</para> - /// <para>/ ports you may request. (At the time of this writing, the limit is 4.)</para> - /// <para>/ The Port assignments are *not* guaranteed to have any particular order</para> - /// <para>/ or relationship! Do *not* assume they are contiguous, even though that</para> - /// <para>/ may often occur in practice.</para> - /// <para>/</para> - /// <para>/ Returns false if a request was already in progress, true if a new request</para> - /// <para>/ was started. A SteamNetworkingFakeIPResult_t will be posted when the request</para> - /// <para>/ completes.</para> - /// <para>/</para> - /// <para>/ For gameservers, you *must* call this after initializing the SDK but before</para> - /// <para>/ beginning login. Steam needs to know in advance that FakeIP will be used.</para> - /// <para>/ Everywhere your public IP would normally appear (such as the server browser) will be</para> - /// <para>/ replaced by the FakeIP, and the fake port at index 0. The request is actually queued</para> - /// <para>/ until the logon completes, so you must not wait until the allocation completes</para> - /// <para>/ before logging in. Except for trivial failures that can be detected locally</para> - /// <para>/ (e.g. invalid parameter), a SteamNetworkingFakeIPResult_t callback (whether success or</para> - /// <para>/ failure) will not be posted until after we have logged in. Furthermore, it is assumed</para> - /// <para>/ that FakeIP allocation is essential for your application to function, and so failure</para> - /// <para>/ will not be reported until *several* retries have been attempted. This process may</para> - /// <para>/ last several minutes. It is *highly* recommended to treat failure as fatal.</para> - /// <para>/</para> - /// <para>/ To communicate using a connection-oriented (TCP-style) API:</para> - /// <para>/ - Server creates a listen socket using CreateListenSocketP2PFakeIP</para> - /// <para>/ - Client connects using ConnectByIPAddress, passing in the FakeIP address.</para> - /// <para>/ - The connection will behave mostly like a P2P connection. The identities</para> - /// <para>/ that appear in SteamNetConnectionInfo_t will be the FakeIP identity until</para> - /// <para>/ we know the real identity. Then it will be the real identity. If the</para> - /// <para>/ SteamNetConnectionInfo_t::m_addrRemote is valid, it will be a real IPv4</para> - /// <para>/ address of a NAT-punched connection. Otherwise, it will not be valid.</para> - /// <para>/</para> - /// <para>/ To communicate using an ad-hoc sendto/recv from (UDP-style) API,</para> - /// <para>/ use CreateFakeUDPPort.</para> - /// </summary> - public static bool BeginAsyncRequestFakeIP(int nNumPorts) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_BeginAsyncRequestFakeIP(CSteamAPIContext.GetSteamNetworkingSockets(), nNumPorts); - } - - /// <summary> - /// <para>/ Return info about the FakeIP and port(s) that we have been assigned,</para> - /// <para>/ if any. idxFirstPort is currently reserved and must be zero.</para> - /// <para>/ Make sure and check SteamNetworkingFakeIPResult_t::m_eResult</para> - /// </summary> - public static void GetFakeIP(int idxFirstPort, out SteamNetworkingFakeIPResult_t pInfo) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamNetworkingSockets_GetFakeIP(CSteamAPIContext.GetSteamNetworkingSockets(), idxFirstPort, out pInfo); - } - - /// <summary> - /// <para>/ Create a listen socket that will listen for P2P connections sent</para> - /// <para>/ to our FakeIP. A peer can initiate connections to this listen</para> - /// <para>/ socket by calling ConnectByIPAddress.</para> - /// <para>/</para> - /// <para>/ idxFakePort refers to the *index* of the fake port requested,</para> - /// <para>/ not the actual port number. For example, pass 0 to refer to the</para> - /// <para>/ first port in the reservation. You must call this only after calling</para> - /// <para>/ BeginAsyncRequestFakeIP. However, you do not need to wait for the</para> - /// <para>/ request to complete before creating the listen socket.</para> - /// </summary> - public static HSteamListenSocket CreateListenSocketP2PFakeIP(int idxFakePort, int nOptions, SteamNetworkingConfigValue_t[] pOptions) { - InteropHelp.TestIfAvailableClient(); - return (HSteamListenSocket)NativeMethods.ISteamNetworkingSockets_CreateListenSocketP2PFakeIP(CSteamAPIContext.GetSteamNetworkingSockets(), idxFakePort, nOptions, pOptions); - } - - /// <summary> - /// <para>/ If the connection was initiated using the "FakeIP" system, then we</para> - /// <para>/ we can get an IP address for the remote host. If the remote host had</para> - /// <para>/ a global FakeIP at the time the connection was established, this</para> - /// <para>/ function will return that global IP. Otherwise, a FakeIP that is</para> - /// <para>/ unique locally will be allocated from the local FakeIP address space,</para> - /// <para>/ and that will be returned.</para> - /// <para>/</para> - /// <para>/ The allocation of local FakeIPs attempts to assign addresses in</para> - /// <para>/ a consistent manner. If multiple connections are made to the</para> - /// <para>/ same remote host, they *probably* will return the same FakeIP.</para> - /// <para>/ However, since the namespace is limited, this cannot be guaranteed.</para> - /// <para>/</para> - /// <para>/ On failure, returns:</para> - /// <para>/ - k_EResultInvalidParam: invalid connection handle</para> - /// <para>/ - k_EResultIPNotFound: This connection wasn't made using FakeIP system</para> - /// </summary> - public static EResult GetRemoteFakeIPForConnection(HSteamNetConnection hConn, out SteamNetworkingIPAddr pOutAddr) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_GetRemoteFakeIPForConnection(CSteamAPIContext.GetSteamNetworkingSockets(), hConn, out pOutAddr); - } - - /// <summary> - /// <para>/ Get an interface that can be used like a UDP port to send/receive</para> - /// <para>/ datagrams to a FakeIP address. This is intended to make it easy</para> - /// <para>/ to port existing UDP-based code to take advantage of SDR.</para> - /// <para>/</para> - /// <para>/ idxFakeServerPort refers to the *index* of the port allocated using</para> - /// <para>/ BeginAsyncRequestFakeIP and is used to create "server" ports. You may</para> - /// <para>/ call this before the allocation has completed. However, any attempts</para> - /// <para>/ to send packets will fail until the allocation has succeeded. When</para> - /// <para>/ the peer receives packets sent from this interface, the from address</para> - /// <para>/ of the packet will be the globally-unique FakeIP. If you call this</para> - /// <para>/ function multiple times and pass the same (nonnegative) fake port index,</para> - /// <para>/ the same object will be returned, and this object is not reference counted.</para> - /// <para>/</para> - /// <para>/ To create a "client" port (e.g. the equivalent of an ephemeral UDP port)</para> - /// <para>/ pass -1. In this case, a distinct object will be returned for each call.</para> - /// <para>/ When the peer receives packets sent from this interface, the peer will</para> - /// <para>/ assign a FakeIP from its own locally-controlled namespace.</para> - /// </summary> - public static IntPtr CreateFakeUDPPort(int idxFakeServerPort) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingSockets_CreateFakeUDPPort(CSteamAPIContext.GetSteamNetworkingSockets(), idxFakeServerPort); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingsockets.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingsockets.cs.meta deleted file mode 100644 index 801b89a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingsockets.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b14ddce873fdbfc4aab2f5e4dafc27aa -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingutils.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingutils.cs deleted file mode 100644 index cb069d7..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingutils.cs +++ /dev/null @@ -1,444 +0,0 @@ -#define STEAMNETWORKINGSOCKETS_ENABLE_SDR -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamNetworkingUtils { - /// <summary> - /// <para> Efficient message sending</para> - /// <para>/ Allocate and initialize a message object. Usually the reason</para> - /// <para>/ you call this is to pass it to ISteamNetworkingSockets::SendMessages.</para> - /// <para>/ The returned object will have all of the relevant fields cleared to zero.</para> - /// <para>/</para> - /// <para>/ Optionally you can also request that this system allocate space to</para> - /// <para>/ hold the payload itself. If cbAllocateBuffer is nonzero, the system</para> - /// <para>/ will allocate memory to hold a payload of at least cbAllocateBuffer bytes.</para> - /// <para>/ m_pData will point to the allocated buffer, m_cbSize will be set to the</para> - /// <para>/ size, and m_pfnFreeData will be set to the proper function to free up</para> - /// <para>/ the buffer.</para> - /// <para>/</para> - /// <para>/ If cbAllocateBuffer=0, then no buffer is allocated. m_pData will be NULL,</para> - /// <para>/ m_cbSize will be zero, and m_pfnFreeData will be NULL. You will need to</para> - /// <para>/ set each of these.</para> - /// </summary> - public static IntPtr AllocateMessage(int cbAllocateBuffer) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_AllocateMessage(CSteamAPIContext.GetSteamNetworkingUtils(), cbAllocateBuffer); - } - - /// <summary> - /// <para> Access to Steam Datagram Relay (SDR) network</para> - /// <para> Initialization and status check</para> - /// <para>/ If you know that you are going to be using the relay network (for example,</para> - /// <para>/ because you anticipate making P2P connections), call this to initialize the</para> - /// <para>/ relay network. If you do not call this, the initialization will</para> - /// <para>/ be delayed until the first time you use a feature that requires access</para> - /// <para>/ to the relay network, which will delay that first access.</para> - /// <para>/</para> - /// <para>/ You can also call this to force a retry if the previous attempt has failed.</para> - /// <para>/ Performing any action that requires access to the relay network will also</para> - /// <para>/ trigger a retry, and so calling this function is never strictly necessary,</para> - /// <para>/ but it can be useful to call it a program launch time, if access to the</para> - /// <para>/ relay network is anticipated.</para> - /// <para>/</para> - /// <para>/ Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t</para> - /// <para>/ callbacks to know when initialization has completed.</para> - /// <para>/ Typically initialization completes in a few seconds.</para> - /// <para>/</para> - /// <para>/ Note: dedicated servers hosted in known data centers do *not* need</para> - /// <para>/ to call this, since they do not make routing decisions. However, if</para> - /// <para>/ the dedicated server will be using P2P functionality, it will act as</para> - /// <para>/ a "client" and this should be called.</para> - /// </summary> - public static void InitRelayNetworkAccess() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamNetworkingUtils_InitRelayNetworkAccess(CSteamAPIContext.GetSteamNetworkingUtils()); - } - - /// <summary> - /// <para>/ Fetch current status of the relay network.</para> - /// <para>/</para> - /// <para>/ SteamRelayNetworkStatus_t is also a callback. It will be triggered on</para> - /// <para>/ both the user and gameserver interfaces any time the status changes, or</para> - /// <para>/ ping measurement starts or stops.</para> - /// <para>/</para> - /// <para>/ SteamRelayNetworkStatus_t::m_eAvail is returned. If you want</para> - /// <para>/ more details, you can pass a non-NULL value.</para> - /// </summary> - public static ESteamNetworkingAvailability GetRelayNetworkStatus(out SteamRelayNetworkStatus_t pDetails) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_GetRelayNetworkStatus(CSteamAPIContext.GetSteamNetworkingUtils(), out pDetails); - } - - /// <summary> - /// <para> "Ping location" functions</para> - /// <para> We use the ping times to the valve relays deployed worldwide to</para> - /// <para> generate a "marker" that describes the location of an Internet host.</para> - /// <para> Given two such markers, we can estimate the network latency between</para> - /// <para> two hosts, without sending any packets. The estimate is based on the</para> - /// <para> optimal route that is found through the Valve network. If you are</para> - /// <para> using the Valve network to carry the traffic, then this is precisely</para> - /// <para> the ping you want. If you are not, then the ping time will probably</para> - /// <para> still be a reasonable estimate.</para> - /// <para> This is extremely useful to select peers for matchmaking!</para> - /// <para> The markers can also be converted to a string, so they can be transmitted.</para> - /// <para> We have a separate library you can use on your app's matchmaking/coordinating</para> - /// <para> server to manipulate these objects. (See steamdatagram_gamecoordinator.h)</para> - /// <para>/ Return location info for the current host. Returns the approximate</para> - /// <para>/ age of the data, in seconds, or -1 if no data is available.</para> - /// <para>/</para> - /// <para>/ It takes a few seconds to initialize access to the relay network. If</para> - /// <para>/ you call this very soon after calling InitRelayNetworkAccess,</para> - /// <para>/ the data may not be available yet.</para> - /// <para>/</para> - /// <para>/ This always return the most up-to-date information we have available</para> - /// <para>/ right now, even if we are in the middle of re-calculating ping times.</para> - /// </summary> - public static float GetLocalPingLocation(out SteamNetworkPingLocation_t result) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_GetLocalPingLocation(CSteamAPIContext.GetSteamNetworkingUtils(), out result); - } - - /// <summary> - /// <para>/ Estimate the round-trip latency between two arbitrary locations, in</para> - /// <para>/ milliseconds. This is a conservative estimate, based on routing through</para> - /// <para>/ the relay network. For most basic relayed connections, this ping time</para> - /// <para>/ will be pretty accurate, since it will be based on the route likely to</para> - /// <para>/ be actually used.</para> - /// <para>/</para> - /// <para>/ If a direct IP route is used (perhaps via NAT traversal), then the route</para> - /// <para>/ will be different, and the ping time might be better. Or it might actually</para> - /// <para>/ be a bit worse! Standard IP routing is frequently suboptimal!</para> - /// <para>/</para> - /// <para>/ But even in this case, the estimate obtained using this method is a</para> - /// <para>/ reasonable upper bound on the ping time. (Also it has the advantage</para> - /// <para>/ of returning immediately and not sending any packets.)</para> - /// <para>/</para> - /// <para>/ In a few cases we might not able to estimate the route. In this case</para> - /// <para>/ a negative value is returned. k_nSteamNetworkingPing_Failed means</para> - /// <para>/ the reason was because of some networking difficulty. (Failure to</para> - /// <para>/ ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot</para> - /// <para>/ currently answer the question for some other reason.</para> - /// <para>/</para> - /// <para>/ Do you need to be able to do this from a backend/matchmaking server?</para> - /// <para>/ You are looking for the "game coordinator" library.</para> - /// </summary> - public static int EstimatePingTimeBetweenTwoLocations(ref SteamNetworkPingLocation_t location1, ref SteamNetworkPingLocation_t location2) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_EstimatePingTimeBetweenTwoLocations(CSteamAPIContext.GetSteamNetworkingUtils(), ref location1, ref location2); - } - - /// <summary> - /// <para>/ Same as EstimatePingTime, but assumes that one location is the local host.</para> - /// <para>/ This is a bit faster, especially if you need to calculate a bunch of</para> - /// <para>/ these in a loop to find the fastest one.</para> - /// <para>/</para> - /// <para>/ In rare cases this might return a slightly different estimate than combining</para> - /// <para>/ GetLocalPingLocation with EstimatePingTimeBetweenTwoLocations. That's because</para> - /// <para>/ this function uses a slightly more complete set of information about what</para> - /// <para>/ route would be taken.</para> - /// </summary> - public static int EstimatePingTimeFromLocalHost(ref SteamNetworkPingLocation_t remoteLocation) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_EstimatePingTimeFromLocalHost(CSteamAPIContext.GetSteamNetworkingUtils(), ref remoteLocation); - } - - /// <summary> - /// <para>/ Convert a ping location into a text format suitable for sending over the wire.</para> - /// <para>/ The format is a compact and human readable. However, it is subject to change</para> - /// <para>/ so please do not parse it yourself. Your buffer must be at least</para> - /// <para>/ k_cchMaxSteamNetworkingPingLocationString bytes.</para> - /// </summary> - public static void ConvertPingLocationToString(ref SteamNetworkPingLocation_t location, out string pszBuf, int cchBufSize) { - InteropHelp.TestIfAvailableClient(); - IntPtr pszBuf2 = Marshal.AllocHGlobal(cchBufSize); - NativeMethods.ISteamNetworkingUtils_ConvertPingLocationToString(CSteamAPIContext.GetSteamNetworkingUtils(), ref location, pszBuf2, cchBufSize); - pszBuf = InteropHelp.PtrToStringUTF8(pszBuf2); - Marshal.FreeHGlobal(pszBuf2); - } - - /// <summary> - /// <para>/ Parse back SteamNetworkPingLocation_t string. Returns false if we couldn't understand</para> - /// <para>/ the string.</para> - /// </summary> - public static bool ParsePingLocationString(string pszString, out SteamNetworkPingLocation_t result) { - InteropHelp.TestIfAvailableClient(); - using (var pszString2 = new InteropHelp.UTF8StringHandle(pszString)) { - return NativeMethods.ISteamNetworkingUtils_ParsePingLocationString(CSteamAPIContext.GetSteamNetworkingUtils(), pszString2, out result); - } - } - - /// <summary> - /// <para>/ Check if the ping data of sufficient recency is available, and if</para> - /// <para>/ it's too old, start refreshing it.</para> - /// <para>/</para> - /// <para>/ Please only call this function when you *really* do need to force an</para> - /// <para>/ immediate refresh of the data. (For example, in response to a specific</para> - /// <para>/ user input to refresh this information.) Don't call it "just in case",</para> - /// <para>/ before every connection, etc. That will cause extra traffic to be sent</para> - /// <para>/ for no benefit. The library will automatically refresh the information</para> - /// <para>/ as needed.</para> - /// <para>/</para> - /// <para>/ Returns true if sufficiently recent data is already available.</para> - /// <para>/</para> - /// <para>/ Returns false if sufficiently recent data is not available. In this</para> - /// <para>/ case, ping measurement is initiated, if it is not already active.</para> - /// <para>/ (You cannot restart a measurement already in progress.)</para> - /// <para>/</para> - /// <para>/ You can use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t</para> - /// <para>/ to know when ping measurement completes.</para> - /// </summary> - public static bool CheckPingDataUpToDate(float flMaxAgeSeconds) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_CheckPingDataUpToDate(CSteamAPIContext.GetSteamNetworkingUtils(), flMaxAgeSeconds); - } - - /// <summary> - /// <para> List of Valve data centers, and ping times to them. This might</para> - /// <para> be useful to you if you are use our hosting, or just need to measure</para> - /// <para> latency to a cloud data center where we are running relays.</para> - /// <para>/ Fetch ping time of best available relayed route from this host to</para> - /// <para>/ the specified data center.</para> - /// </summary> - public static int GetPingToDataCenter(SteamNetworkingPOPID popID, out SteamNetworkingPOPID pViaRelayPoP) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_GetPingToDataCenter(CSteamAPIContext.GetSteamNetworkingUtils(), popID, out pViaRelayPoP); - } - - /// <summary> - /// <para>/ Get *direct* ping time to the relays at the data center.</para> - /// </summary> - public static int GetDirectPingToPOP(SteamNetworkingPOPID popID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_GetDirectPingToPOP(CSteamAPIContext.GetSteamNetworkingUtils(), popID); - } - - /// <summary> - /// <para>/ Get number of network points of presence in the config</para> - /// </summary> - public static int GetPOPCount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_GetPOPCount(CSteamAPIContext.GetSteamNetworkingUtils()); - } - - /// <summary> - /// <para>/ Get list of all POP IDs. Returns the number of entries that were filled into</para> - /// <para>/ your list.</para> - /// </summary> - public static int GetPOPList(out SteamNetworkingPOPID list, int nListSz) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_GetPOPList(CSteamAPIContext.GetSteamNetworkingUtils(), out list, nListSz); - } - - /// <summary> - /// <para> Misc</para> - /// <para>/ Fetch current timestamp. This timer has the following properties:</para> - /// <para>/</para> - /// <para>/ - Monotonicity is guaranteed.</para> - /// <para>/ - The initial value will be at least 24*3600*30*1e6, i.e. about</para> - /// <para>/ 30 days worth of microseconds. In this way, the timestamp value of</para> - /// <para>/ 0 will always be at least "30 days ago". Also, negative numbers</para> - /// <para>/ will never be returned.</para> - /// <para>/ - Wraparound / overflow is not a practical concern.</para> - /// <para>/</para> - /// <para>/ If you are running under the debugger and stop the process, the clock</para> - /// <para>/ might not advance the full wall clock time that has elapsed between</para> - /// <para>/ calls. If the process is not blocked from normal operation, the</para> - /// <para>/ timestamp values will track wall clock time, even if you don't call</para> - /// <para>/ the function frequently.</para> - /// <para>/</para> - /// <para>/ The value is only meaningful for this run of the process. Don't compare</para> - /// <para>/ it to values obtained on another computer, or other runs of the same process.</para> - /// </summary> - public static SteamNetworkingMicroseconds GetLocalTimestamp() { - InteropHelp.TestIfAvailableClient(); - return (SteamNetworkingMicroseconds)NativeMethods.ISteamNetworkingUtils_GetLocalTimestamp(CSteamAPIContext.GetSteamNetworkingUtils()); - } - - /// <summary> - /// <para>/ Set a function to receive network-related information that is useful for debugging.</para> - /// <para>/ This can be very useful during development, but it can also be useful for troubleshooting</para> - /// <para>/ problems with tech savvy end users. If you have a console or other log that customers</para> - /// <para>/ can examine, these log messages can often be helpful to troubleshoot network issues.</para> - /// <para>/ (Especially any warning/error messages.)</para> - /// <para>/</para> - /// <para>/ The detail level indicates what message to invoke your callback on. Lower numeric</para> - /// <para>/ value means more important, and the value you pass is the lowest priority (highest</para> - /// <para>/ numeric value) you wish to receive callbacks for.</para> - /// <para>/</para> - /// <para>/ The value here controls the detail level for most messages. You can control the</para> - /// <para>/ detail level for various subsystems (perhaps only for certain connections) by</para> - /// <para>/ adjusting the configuration values k_ESteamNetworkingConfig_LogLevel_Xxxxx.</para> - /// <para>/</para> - /// <para>/ Except when debugging, you should only use k_ESteamNetworkingSocketsDebugOutputType_Msg</para> - /// <para>/ or k_ESteamNetworkingSocketsDebugOutputType_Warning. For best performance, do NOT</para> - /// <para>/ request a high detail level and then filter out messages in your callback. This incurs</para> - /// <para>/ all of the expense of formatting the messages, which are then discarded. Setting a high</para> - /// <para>/ priority value (low numeric value) here allows the library to avoid doing this work.</para> - /// <para>/</para> - /// <para>/ IMPORTANT: This may be called from a service thread, while we own a mutex, etc.</para> - /// <para>/ Your output function must be threadsafe and fast! Do not make any other</para> - /// <para>/ Steamworks calls from within the handler.</para> - /// </summary> - public static void SetDebugOutputFunction(ESteamNetworkingSocketsDebugOutputType eDetailLevel, FSteamNetworkingSocketsDebugOutput pfnFunc) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamNetworkingUtils_SetDebugOutputFunction(CSteamAPIContext.GetSteamNetworkingUtils(), eDetailLevel, pfnFunc); - } - - /// <summary> - /// <para> Fake IP</para> - /// <para> Useful for interfacing with code that assumes peers are identified using an IPv4 address</para> - /// <para>/ Return true if an IPv4 address is one that might be used as a "fake" one.</para> - /// <para>/ This function is fast; it just does some logical tests on the IP and does</para> - /// <para>/ not need to do any lookup operations.</para> - /// </summary> - public static bool IsFakeIPv4(uint nIPv4) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_IsFakeIPv4(CSteamAPIContext.GetSteamNetworkingUtils(), nIPv4); - } - - public static ESteamNetworkingFakeIPType GetIPv4FakeIPType(uint nIPv4) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_GetIPv4FakeIPType(CSteamAPIContext.GetSteamNetworkingUtils(), nIPv4); - } - - /// <summary> - /// <para>/ Get the real identity associated with a given FakeIP.</para> - /// <para>/</para> - /// <para>/ On failure, returns:</para> - /// <para>/ - k_EResultInvalidParam: the IP is not a FakeIP.</para> - /// <para>/ - k_EResultNoMatch: we don't recognize that FakeIP and don't know the corresponding identity.</para> - /// <para>/</para> - /// <para>/ FakeIP's used by active connections, or the FakeIPs assigned to local identities,</para> - /// <para>/ will always work. FakeIPs for recently destroyed connections will continue to</para> - /// <para>/ return results for a little while, but not forever. At some point, we will forget</para> - /// <para>/ FakeIPs to save space. It's reasonably safe to assume that you can read back the</para> - /// <para>/ real identity of a connection very soon after it is destroyed. But do not wait</para> - /// <para>/ indefinitely.</para> - /// </summary> - public static EResult GetRealIdentityForFakeIP(ref SteamNetworkingIPAddr fakeIP, out SteamNetworkingIdentity pOutRealIdentity) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_GetRealIdentityForFakeIP(CSteamAPIContext.GetSteamNetworkingUtils(), ref fakeIP, out pOutRealIdentity); - } - - /// <summary> - /// <para> Set and get configuration values, see ESteamNetworkingConfigValue for individual descriptions.</para> - /// <para> Shortcuts for common cases. (Implemented as inline functions below)</para> - /// <para> Set global callbacks. If you do not want to use Steam's callback dispatch mechanism and you</para> - /// <para> want to use the same callback on all (or most) listen sockets and connections, then</para> - /// <para> simply install these callbacks first thing, and you are good to go.</para> - /// <para> See ISteamNetworkingSockets::RunCallbacks</para> - /// <para>/ Set a configuration value.</para> - /// <para>/ - eValue: which value is being set</para> - /// <para>/ - eScope: Onto what type of object are you applying the setting?</para> - /// <para>/ - scopeArg: Which object you want to change? (Ignored for global scope). E.g. connection handle, listen socket handle, interface pointer, etc.</para> - /// <para>/ - eDataType: What type of data is in the buffer at pValue? This must match the type of the variable exactly!</para> - /// <para>/ - pArg: Value to set it to. You can pass NULL to remove a non-global setting at this scope,</para> - /// <para>/ causing the value for that object to use global defaults. Or at global scope, passing NULL</para> - /// <para>/ will reset any custom value and restore it to the system default.</para> - /// <para>/ NOTE: When setting pointers (e.g. callback functions), do not pass the function pointer directly.</para> - /// <para>/ Your argument should be a pointer to a function pointer.</para> - /// </summary> - public static bool SetConfigValue(ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, IntPtr scopeObj, ESteamNetworkingConfigDataType eDataType, IntPtr pArg) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_SetConfigValue(CSteamAPIContext.GetSteamNetworkingUtils(), eValue, eScopeType, scopeObj, eDataType, pArg); - } - - /// <summary> - /// <para>/ Set a configuration value, using a struct to pass the value.</para> - /// <para>/ (This is just a convenience shortcut; see below for the implementation and</para> - /// <para>/ a little insight into how SteamNetworkingConfigValue_t is used when</para> - /// <para>/ setting config options during listen socket and connection creation.)</para> - /// <para>/ Get a configuration value.</para> - /// <para>/ - eValue: which value to fetch</para> - /// <para>/ - eScopeType: query setting on what type of object</para> - /// <para>/ - eScopeArg: the object to query the setting for</para> - /// <para>/ - pOutDataType: If non-NULL, the data type of the value is returned.</para> - /// <para>/ - pResult: Where to put the result. Pass NULL to query the required buffer size. (k_ESteamNetworkingGetConfigValue_BufferTooSmall will be returned.)</para> - /// <para>/ - cbResult: IN: the size of your buffer. OUT: the number of bytes filled in or required.</para> - /// </summary> - public static ESteamNetworkingGetConfigValueResult GetConfigValue(ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, IntPtr scopeObj, out ESteamNetworkingConfigDataType pOutDataType, IntPtr pResult, ref ulong cbResult) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_GetConfigValue(CSteamAPIContext.GetSteamNetworkingUtils(), eValue, eScopeType, scopeObj, out pOutDataType, pResult, ref cbResult); - } - - /// <summary> - /// <para>/ Get info about a configuration value. Returns the name of the value,</para> - /// <para>/ or NULL if the value doesn't exist. Other output parameters can be NULL</para> - /// <para>/ if you do not need them.</para> - /// </summary> - public static string GetConfigValueInfo(ESteamNetworkingConfigValue eValue, out ESteamNetworkingConfigDataType pOutDataType, out ESteamNetworkingConfigScope pOutScope) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamNetworkingUtils_GetConfigValueInfo(CSteamAPIContext.GetSteamNetworkingUtils(), eValue, out pOutDataType, out pOutScope)); - } - - /// <summary> - /// <para>/ Iterate the list of all configuration values in the current environment that it might</para> - /// <para>/ be possible to display or edit using a generic UI. To get the first iterable value,</para> - /// <para>/ pass k_ESteamNetworkingConfig_Invalid. Returns k_ESteamNetworkingConfig_Invalid</para> - /// <para>/ to signal end of list.</para> - /// <para>/</para> - /// <para>/ The bEnumerateDevVars argument can be used to include "dev" vars. These are vars that</para> - /// <para>/ are recommended to only be editable in "debug" or "dev" mode and typically should not be</para> - /// <para>/ shown in a retail environment where a malicious local user might use this to cheat.</para> - /// </summary> - public static ESteamNetworkingConfigValue IterateGenericEditableConfigValues(ESteamNetworkingConfigValue eCurrent, bool bEnumerateDevVars) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_IterateGenericEditableConfigValues(CSteamAPIContext.GetSteamNetworkingUtils(), eCurrent, bEnumerateDevVars); - } - - /// <summary> - /// <para> String conversions. You'll usually access these using the respective</para> - /// <para> inline methods.</para> - /// </summary> - public static void SteamNetworkingIPAddr_ToString(ref SteamNetworkingIPAddr addr, out string buf, uint cbBuf, bool bWithPort) { - InteropHelp.TestIfAvailableClient(); - IntPtr buf2 = Marshal.AllocHGlobal((int)cbBuf); - NativeMethods.ISteamNetworkingUtils_SteamNetworkingIPAddr_ToString(CSteamAPIContext.GetSteamNetworkingUtils(), ref addr, buf2, cbBuf, bWithPort); - buf = InteropHelp.PtrToStringUTF8(buf2); - Marshal.FreeHGlobal(buf2); - } - - public static bool SteamNetworkingIPAddr_ParseString(out SteamNetworkingIPAddr pAddr, string pszStr) { - InteropHelp.TestIfAvailableClient(); - using (var pszStr2 = new InteropHelp.UTF8StringHandle(pszStr)) { - return NativeMethods.ISteamNetworkingUtils_SteamNetworkingIPAddr_ParseString(CSteamAPIContext.GetSteamNetworkingUtils(), out pAddr, pszStr2); - } - } - - public static ESteamNetworkingFakeIPType SteamNetworkingIPAddr_GetFakeIPType(ref SteamNetworkingIPAddr addr) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamNetworkingUtils_SteamNetworkingIPAddr_GetFakeIPType(CSteamAPIContext.GetSteamNetworkingUtils(), ref addr); - } - - public static void SteamNetworkingIdentity_ToString(ref SteamNetworkingIdentity identity, out string buf, uint cbBuf) { - InteropHelp.TestIfAvailableClient(); - IntPtr buf2 = Marshal.AllocHGlobal((int)cbBuf); - NativeMethods.ISteamNetworkingUtils_SteamNetworkingIdentity_ToString(CSteamAPIContext.GetSteamNetworkingUtils(), ref identity, buf2, cbBuf); - buf = InteropHelp.PtrToStringUTF8(buf2); - Marshal.FreeHGlobal(buf2); - } - - public static bool SteamNetworkingIdentity_ParseString(out SteamNetworkingIdentity pIdentity, string pszStr) { - InteropHelp.TestIfAvailableClient(); - using (var pszStr2 = new InteropHelp.UTF8StringHandle(pszStr)) { - return NativeMethods.ISteamNetworkingUtils_SteamNetworkingIdentity_ParseString(CSteamAPIContext.GetSteamNetworkingUtils(), out pIdentity, pszStr2); - } - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingutils.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingutils.cs.meta deleted file mode 100644 index 5d67557..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamnetworkingutils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 28bd6c2bd8eef784abca992dc6409c98 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamparentalsettings.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamparentalsettings.cs deleted file mode 100644 index b17ad7e..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamparentalsettings.cs +++ /dev/null @@ -1,51 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamParentalSettings { - public static bool BIsParentalLockEnabled() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamParentalSettings_BIsParentalLockEnabled(CSteamAPIContext.GetSteamParentalSettings()); - } - - public static bool BIsParentalLockLocked() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamParentalSettings_BIsParentalLockLocked(CSteamAPIContext.GetSteamParentalSettings()); - } - - public static bool BIsAppBlocked(AppId_t nAppID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamParentalSettings_BIsAppBlocked(CSteamAPIContext.GetSteamParentalSettings(), nAppID); - } - - public static bool BIsAppInBlockList(AppId_t nAppID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamParentalSettings_BIsAppInBlockList(CSteamAPIContext.GetSteamParentalSettings(), nAppID); - } - - public static bool BIsFeatureBlocked(EParentalFeature eFeature) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamParentalSettings_BIsFeatureBlocked(CSteamAPIContext.GetSteamParentalSettings(), eFeature); - } - - public static bool BIsFeatureInBlockList(EParentalFeature eFeature) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamParentalSettings_BIsFeatureInBlockList(CSteamAPIContext.GetSteamParentalSettings(), eFeature); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamparentalsettings.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamparentalsettings.cs.meta deleted file mode 100644 index e6b4250..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamparentalsettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b6c5b074bfb8a404ab69b08240c3453d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremoteplay.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremoteplay.cs deleted file mode 100644 index 0cc08d8..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremoteplay.cs +++ /dev/null @@ -1,80 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamRemotePlay { - /// <summary> - /// <para> Get the number of currently connected Steam Remote Play sessions</para> - /// </summary> - public static uint GetSessionCount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemotePlay_GetSessionCount(CSteamAPIContext.GetSteamRemotePlay()); - } - - /// <summary> - /// <para> Get the currently connected Steam Remote Play session ID at the specified index. Returns zero if index is out of bounds.</para> - /// </summary> - public static RemotePlaySessionID_t GetSessionID(int iSessionIndex) { - InteropHelp.TestIfAvailableClient(); - return (RemotePlaySessionID_t)NativeMethods.ISteamRemotePlay_GetSessionID(CSteamAPIContext.GetSteamRemotePlay(), iSessionIndex); - } - - /// <summary> - /// <para> Get the SteamID of the connected user</para> - /// </summary> - public static CSteamID GetSessionSteamID(RemotePlaySessionID_t unSessionID) { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamRemotePlay_GetSessionSteamID(CSteamAPIContext.GetSteamRemotePlay(), unSessionID); - } - - /// <summary> - /// <para> Get the name of the session client device</para> - /// <para> This returns NULL if the sessionID is not valid</para> - /// </summary> - public static string GetSessionClientName(RemotePlaySessionID_t unSessionID) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamRemotePlay_GetSessionClientName(CSteamAPIContext.GetSteamRemotePlay(), unSessionID)); - } - - /// <summary> - /// <para> Get the form factor of the session client device</para> - /// </summary> - public static ESteamDeviceFormFactor GetSessionClientFormFactor(RemotePlaySessionID_t unSessionID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemotePlay_GetSessionClientFormFactor(CSteamAPIContext.GetSteamRemotePlay(), unSessionID); - } - - /// <summary> - /// <para> Get the resolution, in pixels, of the session client device</para> - /// <para> This is set to 0x0 if the resolution is not available</para> - /// </summary> - public static bool BGetSessionClientResolution(RemotePlaySessionID_t unSessionID, out int pnResolutionX, out int pnResolutionY) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemotePlay_BGetSessionClientResolution(CSteamAPIContext.GetSteamRemotePlay(), unSessionID, out pnResolutionX, out pnResolutionY); - } - - /// <summary> - /// <para> Invite a friend to Remote Play Together, or create a guest invite if steamIDFriend is empty</para> - /// <para> This returns false if the invite can't be sent</para> - /// </summary> - public static bool BSendRemotePlayTogetherInvite(CSteamID steamIDFriend) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemotePlay_BSendRemotePlayTogetherInvite(CSteamAPIContext.GetSteamRemotePlay(), steamIDFriend); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremoteplay.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremoteplay.cs.meta deleted file mode 100644 index c0f00c5..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremoteplay.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8ce69a1658f2fa246a98b5124418b01c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremotestorage.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremotestorage.cs deleted file mode 100644 index 7bc699b..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremotestorage.cs +++ /dev/null @@ -1,434 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamRemoteStorage { - /// <summary> - /// <para> NOTE</para> - /// <para> Filenames are case-insensitive, and will be converted to lowercase automatically.</para> - /// <para> So "foo.bar" and "Foo.bar" are the same file, and if you write "Foo.bar" then</para> - /// <para> iterate the files, the filename returned will be "foo.bar".</para> - /// <para> file operations</para> - /// </summary> - public static bool FileWrite(string pchFile, byte[] pvData, int cubData) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return NativeMethods.ISteamRemoteStorage_FileWrite(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2, pvData, cubData); - } - } - - public static int FileRead(string pchFile, byte[] pvData, int cubDataToRead) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return NativeMethods.ISteamRemoteStorage_FileRead(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2, pvData, cubDataToRead); - } - } - - public static SteamAPICall_t FileWriteAsync(string pchFile, byte[] pvData, uint cubData) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_FileWriteAsync(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2, pvData, cubData); - } - } - - public static SteamAPICall_t FileReadAsync(string pchFile, uint nOffset, uint cubToRead) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_FileReadAsync(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2, nOffset, cubToRead); - } - } - - public static bool FileReadAsyncComplete(SteamAPICall_t hReadCall, byte[] pvBuffer, uint cubToRead) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_FileReadAsyncComplete(CSteamAPIContext.GetSteamRemoteStorage(), hReadCall, pvBuffer, cubToRead); - } - - public static bool FileForget(string pchFile) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return NativeMethods.ISteamRemoteStorage_FileForget(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2); - } - } - - public static bool FileDelete(string pchFile) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return NativeMethods.ISteamRemoteStorage_FileDelete(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2); - } - } - - public static SteamAPICall_t FileShare(string pchFile) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_FileShare(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2); - } - } - - public static bool SetSyncPlatforms(string pchFile, ERemoteStoragePlatform eRemoteStoragePlatform) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return NativeMethods.ISteamRemoteStorage_SetSyncPlatforms(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2, eRemoteStoragePlatform); - } - } - - /// <summary> - /// <para> file operations that cause network IO</para> - /// </summary> - public static UGCFileWriteStreamHandle_t FileWriteStreamOpen(string pchFile) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return (UGCFileWriteStreamHandle_t)NativeMethods.ISteamRemoteStorage_FileWriteStreamOpen(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2); - } - } - - public static bool FileWriteStreamWriteChunk(UGCFileWriteStreamHandle_t writeHandle, byte[] pvData, int cubData) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_FileWriteStreamWriteChunk(CSteamAPIContext.GetSteamRemoteStorage(), writeHandle, pvData, cubData); - } - - public static bool FileWriteStreamClose(UGCFileWriteStreamHandle_t writeHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_FileWriteStreamClose(CSteamAPIContext.GetSteamRemoteStorage(), writeHandle); - } - - public static bool FileWriteStreamCancel(UGCFileWriteStreamHandle_t writeHandle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_FileWriteStreamCancel(CSteamAPIContext.GetSteamRemoteStorage(), writeHandle); - } - - /// <summary> - /// <para> file information</para> - /// </summary> - public static bool FileExists(string pchFile) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return NativeMethods.ISteamRemoteStorage_FileExists(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2); - } - } - - public static bool FilePersisted(string pchFile) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return NativeMethods.ISteamRemoteStorage_FilePersisted(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2); - } - } - - public static int GetFileSize(string pchFile) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return NativeMethods.ISteamRemoteStorage_GetFileSize(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2); - } - } - - public static long GetFileTimestamp(string pchFile) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return NativeMethods.ISteamRemoteStorage_GetFileTimestamp(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2); - } - } - - public static ERemoteStoragePlatform GetSyncPlatforms(string pchFile) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return NativeMethods.ISteamRemoteStorage_GetSyncPlatforms(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2); - } - } - - /// <summary> - /// <para> iteration</para> - /// </summary> - public static int GetFileCount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_GetFileCount(CSteamAPIContext.GetSteamRemoteStorage()); - } - - public static string GetFileNameAndSize(int iFile, out int pnFileSizeInBytes) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamRemoteStorage_GetFileNameAndSize(CSteamAPIContext.GetSteamRemoteStorage(), iFile, out pnFileSizeInBytes)); - } - - /// <summary> - /// <para> configuration management</para> - /// </summary> - public static bool GetQuota(out ulong pnTotalBytes, out ulong puAvailableBytes) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_GetQuota(CSteamAPIContext.GetSteamRemoteStorage(), out pnTotalBytes, out puAvailableBytes); - } - - public static bool IsCloudEnabledForAccount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_IsCloudEnabledForAccount(CSteamAPIContext.GetSteamRemoteStorage()); - } - - public static bool IsCloudEnabledForApp() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_IsCloudEnabledForApp(CSteamAPIContext.GetSteamRemoteStorage()); - } - - public static void SetCloudEnabledForApp(bool bEnabled) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamRemoteStorage_SetCloudEnabledForApp(CSteamAPIContext.GetSteamRemoteStorage(), bEnabled); - } - - /// <summary> - /// <para> user generated content</para> - /// <para> Downloads a UGC file. A priority value of 0 will download the file immediately,</para> - /// <para> otherwise it will wait to download the file until all downloads with a lower priority</para> - /// <para> value are completed. Downloads with equal priority will occur simultaneously.</para> - /// </summary> - public static SteamAPICall_t UGCDownload(UGCHandle_t hContent, uint unPriority) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_UGCDownload(CSteamAPIContext.GetSteamRemoteStorage(), hContent, unPriority); - } - - /// <summary> - /// <para> Gets the amount of data downloaded so far for a piece of content. pnBytesExpected can be 0 if function returns false</para> - /// <para> or if the transfer hasn't started yet, so be careful to check for that before dividing to get a percentage</para> - /// </summary> - public static bool GetUGCDownloadProgress(UGCHandle_t hContent, out int pnBytesDownloaded, out int pnBytesExpected) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_GetUGCDownloadProgress(CSteamAPIContext.GetSteamRemoteStorage(), hContent, out pnBytesDownloaded, out pnBytesExpected); - } - - /// <summary> - /// <para> Gets metadata for a file after it has been downloaded. This is the same metadata given in the RemoteStorageDownloadUGCResult_t call result</para> - /// </summary> - public static bool GetUGCDetails(UGCHandle_t hContent, out AppId_t pnAppID, out string ppchName, out int pnFileSizeInBytes, out CSteamID pSteamIDOwner) { - InteropHelp.TestIfAvailableClient(); - IntPtr ppchName2; - bool ret = NativeMethods.ISteamRemoteStorage_GetUGCDetails(CSteamAPIContext.GetSteamRemoteStorage(), hContent, out pnAppID, out ppchName2, out pnFileSizeInBytes, out pSteamIDOwner); - ppchName = ret ? InteropHelp.PtrToStringUTF8(ppchName2) : null; - return ret; - } - - /// <summary> - /// <para> After download, gets the content of the file.</para> - /// <para> Small files can be read all at once by calling this function with an offset of 0 and cubDataToRead equal to the size of the file.</para> - /// <para> Larger files can be read in chunks to reduce memory usage (since both sides of the IPC client and the game itself must allocate</para> - /// <para> enough memory for each chunk). Once the last byte is read, the file is implicitly closed and further calls to UGCRead will fail</para> - /// <para> unless UGCDownload is called again.</para> - /// <para> For especially large files (anything over 100MB) it is a requirement that the file is read in chunks.</para> - /// </summary> - public static int UGCRead(UGCHandle_t hContent, byte[] pvData, int cubDataToRead, uint cOffset, EUGCReadAction eAction) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_UGCRead(CSteamAPIContext.GetSteamRemoteStorage(), hContent, pvData, cubDataToRead, cOffset, eAction); - } - - /// <summary> - /// <para> Functions to iterate through UGC that has finished downloading but has not yet been read via UGCRead()</para> - /// </summary> - public static int GetCachedUGCCount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_GetCachedUGCCount(CSteamAPIContext.GetSteamRemoteStorage()); - } - - public static UGCHandle_t GetCachedUGCHandle(int iCachedContent) { - InteropHelp.TestIfAvailableClient(); - return (UGCHandle_t)NativeMethods.ISteamRemoteStorage_GetCachedUGCHandle(CSteamAPIContext.GetSteamRemoteStorage(), iCachedContent); - } - - /// <summary> - /// <para> publishing UGC</para> - /// </summary> - public static SteamAPICall_t PublishWorkshopFile(string pchFile, string pchPreviewFile, AppId_t nConsumerAppId, string pchTitle, string pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, System.Collections.Generic.IList<string> pTags, EWorkshopFileType eWorkshopFileType) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) - using (var pchPreviewFile2 = new InteropHelp.UTF8StringHandle(pchPreviewFile)) - using (var pchTitle2 = new InteropHelp.UTF8StringHandle(pchTitle)) - using (var pchDescription2 = new InteropHelp.UTF8StringHandle(pchDescription)) { - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_PublishWorkshopFile(CSteamAPIContext.GetSteamRemoteStorage(), pchFile2, pchPreviewFile2, nConsumerAppId, pchTitle2, pchDescription2, eVisibility, new InteropHelp.SteamParamStringArray(pTags), eWorkshopFileType); - } - } - - public static PublishedFileUpdateHandle_t CreatePublishedFileUpdateRequest(PublishedFileId_t unPublishedFileId) { - InteropHelp.TestIfAvailableClient(); - return (PublishedFileUpdateHandle_t)NativeMethods.ISteamRemoteStorage_CreatePublishedFileUpdateRequest(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId); - } - - public static bool UpdatePublishedFileFile(PublishedFileUpdateHandle_t updateHandle, string pchFile) { - InteropHelp.TestIfAvailableClient(); - using (var pchFile2 = new InteropHelp.UTF8StringHandle(pchFile)) { - return NativeMethods.ISteamRemoteStorage_UpdatePublishedFileFile(CSteamAPIContext.GetSteamRemoteStorage(), updateHandle, pchFile2); - } - } - - public static bool UpdatePublishedFilePreviewFile(PublishedFileUpdateHandle_t updateHandle, string pchPreviewFile) { - InteropHelp.TestIfAvailableClient(); - using (var pchPreviewFile2 = new InteropHelp.UTF8StringHandle(pchPreviewFile)) { - return NativeMethods.ISteamRemoteStorage_UpdatePublishedFilePreviewFile(CSteamAPIContext.GetSteamRemoteStorage(), updateHandle, pchPreviewFile2); - } - } - - public static bool UpdatePublishedFileTitle(PublishedFileUpdateHandle_t updateHandle, string pchTitle) { - InteropHelp.TestIfAvailableClient(); - using (var pchTitle2 = new InteropHelp.UTF8StringHandle(pchTitle)) { - return NativeMethods.ISteamRemoteStorage_UpdatePublishedFileTitle(CSteamAPIContext.GetSteamRemoteStorage(), updateHandle, pchTitle2); - } - } - - public static bool UpdatePublishedFileDescription(PublishedFileUpdateHandle_t updateHandle, string pchDescription) { - InteropHelp.TestIfAvailableClient(); - using (var pchDescription2 = new InteropHelp.UTF8StringHandle(pchDescription)) { - return NativeMethods.ISteamRemoteStorage_UpdatePublishedFileDescription(CSteamAPIContext.GetSteamRemoteStorage(), updateHandle, pchDescription2); - } - } - - public static bool UpdatePublishedFileVisibility(PublishedFileUpdateHandle_t updateHandle, ERemoteStoragePublishedFileVisibility eVisibility) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_UpdatePublishedFileVisibility(CSteamAPIContext.GetSteamRemoteStorage(), updateHandle, eVisibility); - } - - public static bool UpdatePublishedFileTags(PublishedFileUpdateHandle_t updateHandle, System.Collections.Generic.IList<string> pTags) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_UpdatePublishedFileTags(CSteamAPIContext.GetSteamRemoteStorage(), updateHandle, new InteropHelp.SteamParamStringArray(pTags)); - } - - public static SteamAPICall_t CommitPublishedFileUpdate(PublishedFileUpdateHandle_t updateHandle) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_CommitPublishedFileUpdate(CSteamAPIContext.GetSteamRemoteStorage(), updateHandle); - } - - /// <summary> - /// <para> Gets published file details for the given publishedfileid. If unMaxSecondsOld is greater than 0,</para> - /// <para> cached data may be returned, depending on how long ago it was cached. A value of 0 will force a refresh.</para> - /// <para> A value of k_WorkshopForceLoadPublishedFileDetailsFromCache will use cached data if it exists, no matter how old it is.</para> - /// </summary> - public static SteamAPICall_t GetPublishedFileDetails(PublishedFileId_t unPublishedFileId, uint unMaxSecondsOld) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_GetPublishedFileDetails(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId, unMaxSecondsOld); - } - - public static SteamAPICall_t DeletePublishedFile(PublishedFileId_t unPublishedFileId) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_DeletePublishedFile(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId); - } - - /// <summary> - /// <para> enumerate the files that the current user published with this app</para> - /// </summary> - public static SteamAPICall_t EnumerateUserPublishedFiles(uint unStartIndex) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_EnumerateUserPublishedFiles(CSteamAPIContext.GetSteamRemoteStorage(), unStartIndex); - } - - public static SteamAPICall_t SubscribePublishedFile(PublishedFileId_t unPublishedFileId) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_SubscribePublishedFile(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId); - } - - public static SteamAPICall_t EnumerateUserSubscribedFiles(uint unStartIndex) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_EnumerateUserSubscribedFiles(CSteamAPIContext.GetSteamRemoteStorage(), unStartIndex); - } - - public static SteamAPICall_t UnsubscribePublishedFile(PublishedFileId_t unPublishedFileId) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_UnsubscribePublishedFile(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId); - } - - public static bool UpdatePublishedFileSetChangeDescription(PublishedFileUpdateHandle_t updateHandle, string pchChangeDescription) { - InteropHelp.TestIfAvailableClient(); - using (var pchChangeDescription2 = new InteropHelp.UTF8StringHandle(pchChangeDescription)) { - return NativeMethods.ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(CSteamAPIContext.GetSteamRemoteStorage(), updateHandle, pchChangeDescription2); - } - } - - public static SteamAPICall_t GetPublishedItemVoteDetails(PublishedFileId_t unPublishedFileId) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_GetPublishedItemVoteDetails(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId); - } - - public static SteamAPICall_t UpdateUserPublishedItemVote(PublishedFileId_t unPublishedFileId, bool bVoteUp) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_UpdateUserPublishedItemVote(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId, bVoteUp); - } - - public static SteamAPICall_t GetUserPublishedItemVoteDetails(PublishedFileId_t unPublishedFileId) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_GetUserPublishedItemVoteDetails(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId); - } - - public static SteamAPICall_t EnumerateUserSharedWorkshopFiles(CSteamID steamId, uint unStartIndex, System.Collections.Generic.IList<string> pRequiredTags, System.Collections.Generic.IList<string> pExcludedTags) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(CSteamAPIContext.GetSteamRemoteStorage(), steamId, unStartIndex, new InteropHelp.SteamParamStringArray(pRequiredTags), new InteropHelp.SteamParamStringArray(pExcludedTags)); - } - - public static SteamAPICall_t PublishVideo(EWorkshopVideoProvider eVideoProvider, string pchVideoAccount, string pchVideoIdentifier, string pchPreviewFile, AppId_t nConsumerAppId, string pchTitle, string pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, System.Collections.Generic.IList<string> pTags) { - InteropHelp.TestIfAvailableClient(); - using (var pchVideoAccount2 = new InteropHelp.UTF8StringHandle(pchVideoAccount)) - using (var pchVideoIdentifier2 = new InteropHelp.UTF8StringHandle(pchVideoIdentifier)) - using (var pchPreviewFile2 = new InteropHelp.UTF8StringHandle(pchPreviewFile)) - using (var pchTitle2 = new InteropHelp.UTF8StringHandle(pchTitle)) - using (var pchDescription2 = new InteropHelp.UTF8StringHandle(pchDescription)) { - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_PublishVideo(CSteamAPIContext.GetSteamRemoteStorage(), eVideoProvider, pchVideoAccount2, pchVideoIdentifier2, pchPreviewFile2, nConsumerAppId, pchTitle2, pchDescription2, eVisibility, new InteropHelp.SteamParamStringArray(pTags)); - } - } - - public static SteamAPICall_t SetUserPublishedFileAction(PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_SetUserPublishedFileAction(CSteamAPIContext.GetSteamRemoteStorage(), unPublishedFileId, eAction); - } - - public static SteamAPICall_t EnumeratePublishedFilesByUserAction(EWorkshopFileAction eAction, uint unStartIndex) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(CSteamAPIContext.GetSteamRemoteStorage(), eAction, unStartIndex); - } - - /// <summary> - /// <para> this method enumerates the public view of workshop files</para> - /// </summary> - public static SteamAPICall_t EnumeratePublishedWorkshopFiles(EWorkshopEnumerationType eEnumerationType, uint unStartIndex, uint unCount, uint unDays, System.Collections.Generic.IList<string> pTags, System.Collections.Generic.IList<string> pUserTags) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(CSteamAPIContext.GetSteamRemoteStorage(), eEnumerationType, unStartIndex, unCount, unDays, new InteropHelp.SteamParamStringArray(pTags), new InteropHelp.SteamParamStringArray(pUserTags)); - } - - public static SteamAPICall_t UGCDownloadToLocation(UGCHandle_t hContent, string pchLocation, uint unPriority) { - InteropHelp.TestIfAvailableClient(); - using (var pchLocation2 = new InteropHelp.UTF8StringHandle(pchLocation)) { - return (SteamAPICall_t)NativeMethods.ISteamRemoteStorage_UGCDownloadToLocation(CSteamAPIContext.GetSteamRemoteStorage(), hContent, pchLocation2, unPriority); - } - } - - /// <summary> - /// <para> Cloud dynamic state change notification</para> - /// </summary> - public static int GetLocalFileChangeCount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_GetLocalFileChangeCount(CSteamAPIContext.GetSteamRemoteStorage()); - } - - public static string GetLocalFileChange(int iFile, out ERemoteStorageLocalFileChange pEChangeType, out ERemoteStorageFilePathType pEFilePathType) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamRemoteStorage_GetLocalFileChange(CSteamAPIContext.GetSteamRemoteStorage(), iFile, out pEChangeType, out pEFilePathType)); - } - - /// <summary> - /// <para> Indicate to Steam the beginning / end of a set of local file</para> - /// <para> operations - for example, writing a game save that requires updating two files.</para> - /// </summary> - public static bool BeginFileWriteBatch() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_BeginFileWriteBatch(CSteamAPIContext.GetSteamRemoteStorage()); - } - - public static bool EndFileWriteBatch() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamRemoteStorage_EndFileWriteBatch(CSteamAPIContext.GetSteamRemoteStorage()); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremotestorage.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremotestorage.cs.meta deleted file mode 100644 index a46f402..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamremotestorage.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 01f81133916375e49be0c353f5c1766c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamscreenshots.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamscreenshots.cs deleted file mode 100644 index 4c123ec..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamscreenshots.cs +++ /dev/null @@ -1,111 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamScreenshots { - /// <summary> - /// <para> Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format.</para> - /// <para> The return value is a handle that is valid for the duration of the game process and can be used to apply tags.</para> - /// </summary> - public static ScreenshotHandle WriteScreenshot(byte[] pubRGB, uint cubRGB, int nWidth, int nHeight) { - InteropHelp.TestIfAvailableClient(); - return (ScreenshotHandle)NativeMethods.ISteamScreenshots_WriteScreenshot(CSteamAPIContext.GetSteamScreenshots(), pubRGB, cubRGB, nWidth, nHeight); - } - - /// <summary> - /// <para> Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio</para> - /// <para> as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format.</para> - /// <para> The return value is a handle that is valid for the duration of the game process and can be used to apply tags.</para> - /// <para> JPEG, TGA, and PNG formats are supported.</para> - /// </summary> - public static ScreenshotHandle AddScreenshotToLibrary(string pchFilename, string pchThumbnailFilename, int nWidth, int nHeight) { - InteropHelp.TestIfAvailableClient(); - using (var pchFilename2 = new InteropHelp.UTF8StringHandle(pchFilename)) - using (var pchThumbnailFilename2 = new InteropHelp.UTF8StringHandle(pchThumbnailFilename)) { - return (ScreenshotHandle)NativeMethods.ISteamScreenshots_AddScreenshotToLibrary(CSteamAPIContext.GetSteamScreenshots(), pchFilename2, pchThumbnailFilename2, nWidth, nHeight); - } - } - - /// <summary> - /// <para> Causes the Steam overlay to take a screenshot. If screenshots are being hooked by the game then a ScreenshotRequested_t callback is sent back to the game instead.</para> - /// </summary> - public static void TriggerScreenshot() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamScreenshots_TriggerScreenshot(CSteamAPIContext.GetSteamScreenshots()); - } - - /// <summary> - /// <para> Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or the game handles them. If the game is hooking screenshots,</para> - /// <para> then the ScreenshotRequested_t callback will be sent if the user presses the hotkey, and the game is expected to call WriteScreenshot or AddScreenshotToLibrary</para> - /// <para> in response.</para> - /// </summary> - public static void HookScreenshots(bool bHook) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamScreenshots_HookScreenshots(CSteamAPIContext.GetSteamScreenshots(), bHook); - } - - /// <summary> - /// <para> Sets metadata about a screenshot's location (for example, the name of the map)</para> - /// </summary> - public static bool SetLocation(ScreenshotHandle hScreenshot, string pchLocation) { - InteropHelp.TestIfAvailableClient(); - using (var pchLocation2 = new InteropHelp.UTF8StringHandle(pchLocation)) { - return NativeMethods.ISteamScreenshots_SetLocation(CSteamAPIContext.GetSteamScreenshots(), hScreenshot, pchLocation2); - } - } - - /// <summary> - /// <para> Tags a user as being visible in the screenshot</para> - /// </summary> - public static bool TagUser(ScreenshotHandle hScreenshot, CSteamID steamID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamScreenshots_TagUser(CSteamAPIContext.GetSteamScreenshots(), hScreenshot, steamID); - } - - /// <summary> - /// <para> Tags a published file as being visible in the screenshot</para> - /// </summary> - public static bool TagPublishedFile(ScreenshotHandle hScreenshot, PublishedFileId_t unPublishedFileID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamScreenshots_TagPublishedFile(CSteamAPIContext.GetSteamScreenshots(), hScreenshot, unPublishedFileID); - } - - /// <summary> - /// <para> Returns true if the app has hooked the screenshot</para> - /// </summary> - public static bool IsScreenshotsHooked() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamScreenshots_IsScreenshotsHooked(CSteamAPIContext.GetSteamScreenshots()); - } - - /// <summary> - /// <para> Adds a VR screenshot to the user's screenshot library from disk in the supported type.</para> - /// <para> pchFilename should be the normal 2D image used in the library view</para> - /// <para> pchVRFilename should contain the image that matches the correct type</para> - /// <para> The return value is a handle that is valid for the duration of the game process and can be used to apply tags.</para> - /// <para> JPEG, TGA, and PNG formats are supported.</para> - /// </summary> - public static ScreenshotHandle AddVRScreenshotToLibrary(EVRScreenshotType eType, string pchFilename, string pchVRFilename) { - InteropHelp.TestIfAvailableClient(); - using (var pchFilename2 = new InteropHelp.UTF8StringHandle(pchFilename)) - using (var pchVRFilename2 = new InteropHelp.UTF8StringHandle(pchVRFilename)) { - return (ScreenshotHandle)NativeMethods.ISteamScreenshots_AddVRScreenshotToLibrary(CSteamAPIContext.GetSteamScreenshots(), eType, pchFilename2, pchVRFilename2); - } - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamscreenshots.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamscreenshots.cs.meta deleted file mode 100644 index beea647..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamscreenshots.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f49256fe5fff4fd478b5b499f4a0beb2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamugc.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamugc.cs deleted file mode 100644 index 0bbb312..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamugc.cs +++ /dev/null @@ -1,709 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamUGC { - /// <summary> - /// <para> Query UGC associated with a user. Creator app id or consumer app id must be valid and be set to the current running app. unPage should start at 1.</para> - /// </summary> - public static UGCQueryHandle_t CreateQueryUserUGCRequest(AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint unPage) { - InteropHelp.TestIfAvailableClient(); - return (UGCQueryHandle_t)NativeMethods.ISteamUGC_CreateQueryUserUGCRequest(CSteamAPIContext.GetSteamUGC(), unAccountID, eListType, eMatchingUGCType, eSortOrder, nCreatorAppID, nConsumerAppID, unPage); - } - - /// <summary> - /// <para> Query for all matching UGC. Creator app id or consumer app id must be valid and be set to the current running app. unPage should start at 1.</para> - /// </summary> - public static UGCQueryHandle_t CreateQueryAllUGCRequest(EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint unPage) { - InteropHelp.TestIfAvailableClient(); - return (UGCQueryHandle_t)NativeMethods.ISteamUGC_CreateQueryAllUGCRequestPage(CSteamAPIContext.GetSteamUGC(), eQueryType, eMatchingeMatchingUGCTypeFileType, nCreatorAppID, nConsumerAppID, unPage); - } - - /// <summary> - /// <para> Query for all matching UGC using the new deep paging interface. Creator app id or consumer app id must be valid and be set to the current running app. pchCursor should be set to NULL or "*" to get the first result set.</para> - /// </summary> - public static UGCQueryHandle_t CreateQueryAllUGCRequest(EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, string pchCursor = null) { - InteropHelp.TestIfAvailableClient(); - using (var pchCursor2 = new InteropHelp.UTF8StringHandle(pchCursor)) { - return (UGCQueryHandle_t)NativeMethods.ISteamUGC_CreateQueryAllUGCRequestCursor(CSteamAPIContext.GetSteamUGC(), eQueryType, eMatchingeMatchingUGCTypeFileType, nCreatorAppID, nConsumerAppID, pchCursor2); - } - } - - /// <summary> - /// <para> Query for the details of the given published file ids (the RequestUGCDetails call is deprecated and replaced with this)</para> - /// </summary> - public static UGCQueryHandle_t CreateQueryUGCDetailsRequest(PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs) { - InteropHelp.TestIfAvailableClient(); - return (UGCQueryHandle_t)NativeMethods.ISteamUGC_CreateQueryUGCDetailsRequest(CSteamAPIContext.GetSteamUGC(), pvecPublishedFileID, unNumPublishedFileIDs); - } - - /// <summary> - /// <para> Send the query to Steam</para> - /// </summary> - public static SteamAPICall_t SendQueryUGCRequest(UGCQueryHandle_t handle) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_SendQueryUGCRequest(CSteamAPIContext.GetSteamUGC(), handle); - } - - /// <summary> - /// <para> Retrieve an individual result after receiving the callback for querying UGC</para> - /// </summary> - public static bool GetQueryUGCResult(UGCQueryHandle_t handle, uint index, out SteamUGCDetails_t pDetails) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_GetQueryUGCResult(CSteamAPIContext.GetSteamUGC(), handle, index, out pDetails); - } - - public static uint GetQueryUGCNumTags(UGCQueryHandle_t handle, uint index) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_GetQueryUGCNumTags(CSteamAPIContext.GetSteamUGC(), handle, index); - } - - public static bool GetQueryUGCTag(UGCQueryHandle_t handle, uint index, uint indexTag, out string pchValue, uint cchValueSize) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchValue2 = Marshal.AllocHGlobal((int)cchValueSize); - bool ret = NativeMethods.ISteamUGC_GetQueryUGCTag(CSteamAPIContext.GetSteamUGC(), handle, index, indexTag, pchValue2, cchValueSize); - pchValue = ret ? InteropHelp.PtrToStringUTF8(pchValue2) : null; - Marshal.FreeHGlobal(pchValue2); - return ret; - } - - public static bool GetQueryUGCTagDisplayName(UGCQueryHandle_t handle, uint index, uint indexTag, out string pchValue, uint cchValueSize) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchValue2 = Marshal.AllocHGlobal((int)cchValueSize); - bool ret = NativeMethods.ISteamUGC_GetQueryUGCTagDisplayName(CSteamAPIContext.GetSteamUGC(), handle, index, indexTag, pchValue2, cchValueSize); - pchValue = ret ? InteropHelp.PtrToStringUTF8(pchValue2) : null; - Marshal.FreeHGlobal(pchValue2); - return ret; - } - - public static bool GetQueryUGCPreviewURL(UGCQueryHandle_t handle, uint index, out string pchURL, uint cchURLSize) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchURL2 = Marshal.AllocHGlobal((int)cchURLSize); - bool ret = NativeMethods.ISteamUGC_GetQueryUGCPreviewURL(CSteamAPIContext.GetSteamUGC(), handle, index, pchURL2, cchURLSize); - pchURL = ret ? InteropHelp.PtrToStringUTF8(pchURL2) : null; - Marshal.FreeHGlobal(pchURL2); - return ret; - } - - public static bool GetQueryUGCMetadata(UGCQueryHandle_t handle, uint index, out string pchMetadata, uint cchMetadatasize) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchMetadata2 = Marshal.AllocHGlobal((int)cchMetadatasize); - bool ret = NativeMethods.ISteamUGC_GetQueryUGCMetadata(CSteamAPIContext.GetSteamUGC(), handle, index, pchMetadata2, cchMetadatasize); - pchMetadata = ret ? InteropHelp.PtrToStringUTF8(pchMetadata2) : null; - Marshal.FreeHGlobal(pchMetadata2); - return ret; - } - - public static bool GetQueryUGCChildren(UGCQueryHandle_t handle, uint index, PublishedFileId_t[] pvecPublishedFileID, uint cMaxEntries) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_GetQueryUGCChildren(CSteamAPIContext.GetSteamUGC(), handle, index, pvecPublishedFileID, cMaxEntries); - } - - public static bool GetQueryUGCStatistic(UGCQueryHandle_t handle, uint index, EItemStatistic eStatType, out ulong pStatValue) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_GetQueryUGCStatistic(CSteamAPIContext.GetSteamUGC(), handle, index, eStatType, out pStatValue); - } - - public static uint GetQueryUGCNumAdditionalPreviews(UGCQueryHandle_t handle, uint index) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_GetQueryUGCNumAdditionalPreviews(CSteamAPIContext.GetSteamUGC(), handle, index); - } - - public static bool GetQueryUGCAdditionalPreview(UGCQueryHandle_t handle, uint index, uint previewIndex, out string pchURLOrVideoID, uint cchURLSize, out string pchOriginalFileName, uint cchOriginalFileNameSize, out EItemPreviewType pPreviewType) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchURLOrVideoID2 = Marshal.AllocHGlobal((int)cchURLSize); - IntPtr pchOriginalFileName2 = Marshal.AllocHGlobal((int)cchOriginalFileNameSize); - bool ret = NativeMethods.ISteamUGC_GetQueryUGCAdditionalPreview(CSteamAPIContext.GetSteamUGC(), handle, index, previewIndex, pchURLOrVideoID2, cchURLSize, pchOriginalFileName2, cchOriginalFileNameSize, out pPreviewType); - pchURLOrVideoID = ret ? InteropHelp.PtrToStringUTF8(pchURLOrVideoID2) : null; - Marshal.FreeHGlobal(pchURLOrVideoID2); - pchOriginalFileName = ret ? InteropHelp.PtrToStringUTF8(pchOriginalFileName2) : null; - Marshal.FreeHGlobal(pchOriginalFileName2); - return ret; - } - - public static uint GetQueryUGCNumKeyValueTags(UGCQueryHandle_t handle, uint index) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_GetQueryUGCNumKeyValueTags(CSteamAPIContext.GetSteamUGC(), handle, index); - } - - public static bool GetQueryUGCKeyValueTag(UGCQueryHandle_t handle, uint index, uint keyValueTagIndex, out string pchKey, uint cchKeySize, out string pchValue, uint cchValueSize) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchKey2 = Marshal.AllocHGlobal((int)cchKeySize); - IntPtr pchValue2 = Marshal.AllocHGlobal((int)cchValueSize); - bool ret = NativeMethods.ISteamUGC_GetQueryUGCKeyValueTag(CSteamAPIContext.GetSteamUGC(), handle, index, keyValueTagIndex, pchKey2, cchKeySize, pchValue2, cchValueSize); - pchKey = ret ? InteropHelp.PtrToStringUTF8(pchKey2) : null; - Marshal.FreeHGlobal(pchKey2); - pchValue = ret ? InteropHelp.PtrToStringUTF8(pchValue2) : null; - Marshal.FreeHGlobal(pchValue2); - return ret; - } - - /// <summary> - /// <para> Return the first value matching the pchKey. Note that a key may map to multiple values. Returns false if there was an error or no matching value was found.</para> - /// </summary> - public static bool GetQueryUGCKeyValueTag(UGCQueryHandle_t handle, uint index, string pchKey, out string pchValue, uint cchValueSize) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchValue2 = Marshal.AllocHGlobal((int)cchValueSize); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) { - bool ret = NativeMethods.ISteamUGC_GetQueryFirstUGCKeyValueTag(CSteamAPIContext.GetSteamUGC(), handle, index, pchKey2, pchValue2, cchValueSize); - pchValue = ret ? InteropHelp.PtrToStringUTF8(pchValue2) : null; - Marshal.FreeHGlobal(pchValue2); - return ret; - } - } - - public static uint GetQueryUGCContentDescriptors(UGCQueryHandle_t handle, uint index, out EUGCContentDescriptorID pvecDescriptors, uint cMaxEntries) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_GetQueryUGCContentDescriptors(CSteamAPIContext.GetSteamUGC(), handle, index, out pvecDescriptors, cMaxEntries); - } - - /// <summary> - /// <para> Release the request to free up memory, after retrieving results</para> - /// </summary> - public static bool ReleaseQueryUGCRequest(UGCQueryHandle_t handle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_ReleaseQueryUGCRequest(CSteamAPIContext.GetSteamUGC(), handle); - } - - /// <summary> - /// <para> Options to set for querying UGC</para> - /// </summary> - public static bool AddRequiredTag(UGCQueryHandle_t handle, string pTagName) { - InteropHelp.TestIfAvailableClient(); - using (var pTagName2 = new InteropHelp.UTF8StringHandle(pTagName)) { - return NativeMethods.ISteamUGC_AddRequiredTag(CSteamAPIContext.GetSteamUGC(), handle, pTagName2); - } - } - - /// <summary> - /// <para> match any of the tags in this group</para> - /// </summary> - public static bool AddRequiredTagGroup(UGCQueryHandle_t handle, System.Collections.Generic.IList<string> pTagGroups) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_AddRequiredTagGroup(CSteamAPIContext.GetSteamUGC(), handle, new InteropHelp.SteamParamStringArray(pTagGroups)); - } - - public static bool AddExcludedTag(UGCQueryHandle_t handle, string pTagName) { - InteropHelp.TestIfAvailableClient(); - using (var pTagName2 = new InteropHelp.UTF8StringHandle(pTagName)) { - return NativeMethods.ISteamUGC_AddExcludedTag(CSteamAPIContext.GetSteamUGC(), handle, pTagName2); - } - } - - public static bool SetReturnOnlyIDs(UGCQueryHandle_t handle, bool bReturnOnlyIDs) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetReturnOnlyIDs(CSteamAPIContext.GetSteamUGC(), handle, bReturnOnlyIDs); - } - - public static bool SetReturnKeyValueTags(UGCQueryHandle_t handle, bool bReturnKeyValueTags) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetReturnKeyValueTags(CSteamAPIContext.GetSteamUGC(), handle, bReturnKeyValueTags); - } - - public static bool SetReturnLongDescription(UGCQueryHandle_t handle, bool bReturnLongDescription) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetReturnLongDescription(CSteamAPIContext.GetSteamUGC(), handle, bReturnLongDescription); - } - - public static bool SetReturnMetadata(UGCQueryHandle_t handle, bool bReturnMetadata) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetReturnMetadata(CSteamAPIContext.GetSteamUGC(), handle, bReturnMetadata); - } - - public static bool SetReturnChildren(UGCQueryHandle_t handle, bool bReturnChildren) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetReturnChildren(CSteamAPIContext.GetSteamUGC(), handle, bReturnChildren); - } - - public static bool SetReturnAdditionalPreviews(UGCQueryHandle_t handle, bool bReturnAdditionalPreviews) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetReturnAdditionalPreviews(CSteamAPIContext.GetSteamUGC(), handle, bReturnAdditionalPreviews); - } - - public static bool SetReturnTotalOnly(UGCQueryHandle_t handle, bool bReturnTotalOnly) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetReturnTotalOnly(CSteamAPIContext.GetSteamUGC(), handle, bReturnTotalOnly); - } - - public static bool SetReturnPlaytimeStats(UGCQueryHandle_t handle, uint unDays) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetReturnPlaytimeStats(CSteamAPIContext.GetSteamUGC(), handle, unDays); - } - - public static bool SetLanguage(UGCQueryHandle_t handle, string pchLanguage) { - InteropHelp.TestIfAvailableClient(); - using (var pchLanguage2 = new InteropHelp.UTF8StringHandle(pchLanguage)) { - return NativeMethods.ISteamUGC_SetLanguage(CSteamAPIContext.GetSteamUGC(), handle, pchLanguage2); - } - } - - public static bool SetAllowCachedResponse(UGCQueryHandle_t handle, uint unMaxAgeSeconds) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetAllowCachedResponse(CSteamAPIContext.GetSteamUGC(), handle, unMaxAgeSeconds); - } - - /// <summary> - /// <para> Options only for querying user UGC</para> - /// </summary> - public static bool SetCloudFileNameFilter(UGCQueryHandle_t handle, string pMatchCloudFileName) { - InteropHelp.TestIfAvailableClient(); - using (var pMatchCloudFileName2 = new InteropHelp.UTF8StringHandle(pMatchCloudFileName)) { - return NativeMethods.ISteamUGC_SetCloudFileNameFilter(CSteamAPIContext.GetSteamUGC(), handle, pMatchCloudFileName2); - } - } - - /// <summary> - /// <para> Options only for querying all UGC</para> - /// </summary> - public static bool SetMatchAnyTag(UGCQueryHandle_t handle, bool bMatchAnyTag) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetMatchAnyTag(CSteamAPIContext.GetSteamUGC(), handle, bMatchAnyTag); - } - - public static bool SetSearchText(UGCQueryHandle_t handle, string pSearchText) { - InteropHelp.TestIfAvailableClient(); - using (var pSearchText2 = new InteropHelp.UTF8StringHandle(pSearchText)) { - return NativeMethods.ISteamUGC_SetSearchText(CSteamAPIContext.GetSteamUGC(), handle, pSearchText2); - } - } - - public static bool SetRankedByTrendDays(UGCQueryHandle_t handle, uint unDays) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetRankedByTrendDays(CSteamAPIContext.GetSteamUGC(), handle, unDays); - } - - public static bool SetTimeCreatedDateRange(UGCQueryHandle_t handle, uint rtStart, uint rtEnd) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetTimeCreatedDateRange(CSteamAPIContext.GetSteamUGC(), handle, rtStart, rtEnd); - } - - public static bool SetTimeUpdatedDateRange(UGCQueryHandle_t handle, uint rtStart, uint rtEnd) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetTimeUpdatedDateRange(CSteamAPIContext.GetSteamUGC(), handle, rtStart, rtEnd); - } - - public static bool AddRequiredKeyValueTag(UGCQueryHandle_t handle, string pKey, string pValue) { - InteropHelp.TestIfAvailableClient(); - using (var pKey2 = new InteropHelp.UTF8StringHandle(pKey)) - using (var pValue2 = new InteropHelp.UTF8StringHandle(pValue)) { - return NativeMethods.ISteamUGC_AddRequiredKeyValueTag(CSteamAPIContext.GetSteamUGC(), handle, pKey2, pValue2); - } - } - - /// <summary> - /// <para> DEPRECATED - Use CreateQueryUGCDetailsRequest call above instead!</para> - /// </summary> - public static SteamAPICall_t RequestUGCDetails(PublishedFileId_t nPublishedFileID, uint unMaxAgeSeconds) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_RequestUGCDetails(CSteamAPIContext.GetSteamUGC(), nPublishedFileID, unMaxAgeSeconds); - } - - /// <summary> - /// <para> Steam Workshop Creator API</para> - /// <para> create new item for this app with no content attached yet</para> - /// </summary> - public static SteamAPICall_t CreateItem(AppId_t nConsumerAppId, EWorkshopFileType eFileType) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_CreateItem(CSteamAPIContext.GetSteamUGC(), nConsumerAppId, eFileType); - } - - /// <summary> - /// <para> start an UGC item update. Set changed properties before commiting update with CommitItemUpdate()</para> - /// </summary> - public static UGCUpdateHandle_t StartItemUpdate(AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableClient(); - return (UGCUpdateHandle_t)NativeMethods.ISteamUGC_StartItemUpdate(CSteamAPIContext.GetSteamUGC(), nConsumerAppId, nPublishedFileID); - } - - /// <summary> - /// <para> change the title of an UGC item</para> - /// </summary> - public static bool SetItemTitle(UGCUpdateHandle_t handle, string pchTitle) { - InteropHelp.TestIfAvailableClient(); - using (var pchTitle2 = new InteropHelp.UTF8StringHandle(pchTitle)) { - return NativeMethods.ISteamUGC_SetItemTitle(CSteamAPIContext.GetSteamUGC(), handle, pchTitle2); - } - } - - /// <summary> - /// <para> change the description of an UGC item</para> - /// </summary> - public static bool SetItemDescription(UGCUpdateHandle_t handle, string pchDescription) { - InteropHelp.TestIfAvailableClient(); - using (var pchDescription2 = new InteropHelp.UTF8StringHandle(pchDescription)) { - return NativeMethods.ISteamUGC_SetItemDescription(CSteamAPIContext.GetSteamUGC(), handle, pchDescription2); - } - } - - /// <summary> - /// <para> specify the language of the title or description that will be set</para> - /// </summary> - public static bool SetItemUpdateLanguage(UGCUpdateHandle_t handle, string pchLanguage) { - InteropHelp.TestIfAvailableClient(); - using (var pchLanguage2 = new InteropHelp.UTF8StringHandle(pchLanguage)) { - return NativeMethods.ISteamUGC_SetItemUpdateLanguage(CSteamAPIContext.GetSteamUGC(), handle, pchLanguage2); - } - } - - /// <summary> - /// <para> change the metadata of an UGC item (max = k_cchDeveloperMetadataMax)</para> - /// </summary> - public static bool SetItemMetadata(UGCUpdateHandle_t handle, string pchMetaData) { - InteropHelp.TestIfAvailableClient(); - using (var pchMetaData2 = new InteropHelp.UTF8StringHandle(pchMetaData)) { - return NativeMethods.ISteamUGC_SetItemMetadata(CSteamAPIContext.GetSteamUGC(), handle, pchMetaData2); - } - } - - /// <summary> - /// <para> change the visibility of an UGC item</para> - /// </summary> - public static bool SetItemVisibility(UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetItemVisibility(CSteamAPIContext.GetSteamUGC(), handle, eVisibility); - } - - /// <summary> - /// <para> change the tags of an UGC item</para> - /// </summary> - public static bool SetItemTags(UGCUpdateHandle_t updateHandle, System.Collections.Generic.IList<string> pTags) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetItemTags(CSteamAPIContext.GetSteamUGC(), updateHandle, new InteropHelp.SteamParamStringArray(pTags)); - } - - /// <summary> - /// <para> update item content from this local folder</para> - /// </summary> - public static bool SetItemContent(UGCUpdateHandle_t handle, string pszContentFolder) { - InteropHelp.TestIfAvailableClient(); - using (var pszContentFolder2 = new InteropHelp.UTF8StringHandle(pszContentFolder)) { - return NativeMethods.ISteamUGC_SetItemContent(CSteamAPIContext.GetSteamUGC(), handle, pszContentFolder2); - } - } - - /// <summary> - /// <para> change preview image file for this item. pszPreviewFile points to local image file, which must be under 1MB in size</para> - /// </summary> - public static bool SetItemPreview(UGCUpdateHandle_t handle, string pszPreviewFile) { - InteropHelp.TestIfAvailableClient(); - using (var pszPreviewFile2 = new InteropHelp.UTF8StringHandle(pszPreviewFile)) { - return NativeMethods.ISteamUGC_SetItemPreview(CSteamAPIContext.GetSteamUGC(), handle, pszPreviewFile2); - } - } - - /// <summary> - /// <para> use legacy upload for a single small file. The parameter to SetItemContent() should either be a directory with one file or the full path to the file. The file must also be less than 10MB in size.</para> - /// </summary> - public static bool SetAllowLegacyUpload(UGCUpdateHandle_t handle, bool bAllowLegacyUpload) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_SetAllowLegacyUpload(CSteamAPIContext.GetSteamUGC(), handle, bAllowLegacyUpload); - } - - /// <summary> - /// <para> remove all existing key-value tags (you can add new ones via the AddItemKeyValueTag function)</para> - /// </summary> - public static bool RemoveAllItemKeyValueTags(UGCUpdateHandle_t handle) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_RemoveAllItemKeyValueTags(CSteamAPIContext.GetSteamUGC(), handle); - } - - /// <summary> - /// <para> remove any existing key-value tags with the specified key</para> - /// </summary> - public static bool RemoveItemKeyValueTags(UGCUpdateHandle_t handle, string pchKey) { - InteropHelp.TestIfAvailableClient(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) { - return NativeMethods.ISteamUGC_RemoveItemKeyValueTags(CSteamAPIContext.GetSteamUGC(), handle, pchKey2); - } - } - - /// <summary> - /// <para> add new key-value tags for the item. Note that there can be multiple values for a tag.</para> - /// </summary> - public static bool AddItemKeyValueTag(UGCUpdateHandle_t handle, string pchKey, string pchValue) { - InteropHelp.TestIfAvailableClient(); - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) - using (var pchValue2 = new InteropHelp.UTF8StringHandle(pchValue)) { - return NativeMethods.ISteamUGC_AddItemKeyValueTag(CSteamAPIContext.GetSteamUGC(), handle, pchKey2, pchValue2); - } - } - - /// <summary> - /// <para> add preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size</para> - /// </summary> - public static bool AddItemPreviewFile(UGCUpdateHandle_t handle, string pszPreviewFile, EItemPreviewType type) { - InteropHelp.TestIfAvailableClient(); - using (var pszPreviewFile2 = new InteropHelp.UTF8StringHandle(pszPreviewFile)) { - return NativeMethods.ISteamUGC_AddItemPreviewFile(CSteamAPIContext.GetSteamUGC(), handle, pszPreviewFile2, type); - } - } - - /// <summary> - /// <para> add preview video for this item</para> - /// </summary> - public static bool AddItemPreviewVideo(UGCUpdateHandle_t handle, string pszVideoID) { - InteropHelp.TestIfAvailableClient(); - using (var pszVideoID2 = new InteropHelp.UTF8StringHandle(pszVideoID)) { - return NativeMethods.ISteamUGC_AddItemPreviewVideo(CSteamAPIContext.GetSteamUGC(), handle, pszVideoID2); - } - } - - /// <summary> - /// <para> updates an existing preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size</para> - /// </summary> - public static bool UpdateItemPreviewFile(UGCUpdateHandle_t handle, uint index, string pszPreviewFile) { - InteropHelp.TestIfAvailableClient(); - using (var pszPreviewFile2 = new InteropHelp.UTF8StringHandle(pszPreviewFile)) { - return NativeMethods.ISteamUGC_UpdateItemPreviewFile(CSteamAPIContext.GetSteamUGC(), handle, index, pszPreviewFile2); - } - } - - /// <summary> - /// <para> updates an existing preview video for this item</para> - /// </summary> - public static bool UpdateItemPreviewVideo(UGCUpdateHandle_t handle, uint index, string pszVideoID) { - InteropHelp.TestIfAvailableClient(); - using (var pszVideoID2 = new InteropHelp.UTF8StringHandle(pszVideoID)) { - return NativeMethods.ISteamUGC_UpdateItemPreviewVideo(CSteamAPIContext.GetSteamUGC(), handle, index, pszVideoID2); - } - } - - /// <summary> - /// <para> remove a preview by index starting at 0 (previews are sorted)</para> - /// </summary> - public static bool RemoveItemPreview(UGCUpdateHandle_t handle, uint index) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_RemoveItemPreview(CSteamAPIContext.GetSteamUGC(), handle, index); - } - - public static bool AddContentDescriptor(UGCUpdateHandle_t handle, EUGCContentDescriptorID descid) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_AddContentDescriptor(CSteamAPIContext.GetSteamUGC(), handle, descid); - } - - public static bool RemoveContentDescriptor(UGCUpdateHandle_t handle, EUGCContentDescriptorID descid) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_RemoveContentDescriptor(CSteamAPIContext.GetSteamUGC(), handle, descid); - } - - /// <summary> - /// <para> commit update process started with StartItemUpdate()</para> - /// </summary> - public static SteamAPICall_t SubmitItemUpdate(UGCUpdateHandle_t handle, string pchChangeNote) { - InteropHelp.TestIfAvailableClient(); - using (var pchChangeNote2 = new InteropHelp.UTF8StringHandle(pchChangeNote)) { - return (SteamAPICall_t)NativeMethods.ISteamUGC_SubmitItemUpdate(CSteamAPIContext.GetSteamUGC(), handle, pchChangeNote2); - } - } - - public static EItemUpdateStatus GetItemUpdateProgress(UGCUpdateHandle_t handle, out ulong punBytesProcessed, out ulong punBytesTotal) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_GetItemUpdateProgress(CSteamAPIContext.GetSteamUGC(), handle, out punBytesProcessed, out punBytesTotal); - } - - /// <summary> - /// <para> Steam Workshop Consumer API</para> - /// </summary> - public static SteamAPICall_t SetUserItemVote(PublishedFileId_t nPublishedFileID, bool bVoteUp) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_SetUserItemVote(CSteamAPIContext.GetSteamUGC(), nPublishedFileID, bVoteUp); - } - - public static SteamAPICall_t GetUserItemVote(PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_GetUserItemVote(CSteamAPIContext.GetSteamUGC(), nPublishedFileID); - } - - public static SteamAPICall_t AddItemToFavorites(AppId_t nAppId, PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_AddItemToFavorites(CSteamAPIContext.GetSteamUGC(), nAppId, nPublishedFileID); - } - - public static SteamAPICall_t RemoveItemFromFavorites(AppId_t nAppId, PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_RemoveItemFromFavorites(CSteamAPIContext.GetSteamUGC(), nAppId, nPublishedFileID); - } - - /// <summary> - /// <para> subscribe to this item, will be installed ASAP</para> - /// </summary> - public static SteamAPICall_t SubscribeItem(PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_SubscribeItem(CSteamAPIContext.GetSteamUGC(), nPublishedFileID); - } - - /// <summary> - /// <para> unsubscribe from this item, will be uninstalled after game quits</para> - /// </summary> - public static SteamAPICall_t UnsubscribeItem(PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_UnsubscribeItem(CSteamAPIContext.GetSteamUGC(), nPublishedFileID); - } - - /// <summary> - /// <para> number of subscribed items</para> - /// </summary> - public static uint GetNumSubscribedItems() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_GetNumSubscribedItems(CSteamAPIContext.GetSteamUGC()); - } - - /// <summary> - /// <para> all subscribed item PublishFileIDs</para> - /// </summary> - public static uint GetSubscribedItems(PublishedFileId_t[] pvecPublishedFileID, uint cMaxEntries) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_GetSubscribedItems(CSteamAPIContext.GetSteamUGC(), pvecPublishedFileID, cMaxEntries); - } - - /// <summary> - /// <para> get EItemState flags about item on this client</para> - /// </summary> - public static uint GetItemState(PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_GetItemState(CSteamAPIContext.GetSteamUGC(), nPublishedFileID); - } - - /// <summary> - /// <para> get info about currently installed content on disc for items that have k_EItemStateInstalled set</para> - /// <para> if k_EItemStateLegacyItem is set, pchFolder contains the path to the legacy file itself (not a folder)</para> - /// </summary> - public static bool GetItemInstallInfo(PublishedFileId_t nPublishedFileID, out ulong punSizeOnDisk, out string pchFolder, uint cchFolderSize, out uint punTimeStamp) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchFolder2 = Marshal.AllocHGlobal((int)cchFolderSize); - bool ret = NativeMethods.ISteamUGC_GetItemInstallInfo(CSteamAPIContext.GetSteamUGC(), nPublishedFileID, out punSizeOnDisk, pchFolder2, cchFolderSize, out punTimeStamp); - pchFolder = ret ? InteropHelp.PtrToStringUTF8(pchFolder2) : null; - Marshal.FreeHGlobal(pchFolder2); - return ret; - } - - /// <summary> - /// <para> get info about pending update for items that have k_EItemStateNeedsUpdate set. punBytesTotal will be valid after download started once</para> - /// </summary> - public static bool GetItemDownloadInfo(PublishedFileId_t nPublishedFileID, out ulong punBytesDownloaded, out ulong punBytesTotal) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_GetItemDownloadInfo(CSteamAPIContext.GetSteamUGC(), nPublishedFileID, out punBytesDownloaded, out punBytesTotal); - } - - /// <summary> - /// <para> download new or update already installed item. If function returns true, wait for DownloadItemResult_t. If the item is already installed,</para> - /// <para> then files on disk should not be used until callback received. If item is not subscribed to, it will be cached for some time.</para> - /// <para> If bHighPriority is set, any other item download will be suspended and this item downloaded ASAP.</para> - /// </summary> - public static bool DownloadItem(PublishedFileId_t nPublishedFileID, bool bHighPriority) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_DownloadItem(CSteamAPIContext.GetSteamUGC(), nPublishedFileID, bHighPriority); - } - - /// <summary> - /// <para> game servers can set a specific workshop folder before issuing any UGC commands.</para> - /// <para> This is helpful if you want to support multiple game servers running out of the same install folder</para> - /// </summary> - public static bool BInitWorkshopForGameServer(DepotId_t unWorkshopDepotID, string pszFolder) { - InteropHelp.TestIfAvailableClient(); - using (var pszFolder2 = new InteropHelp.UTF8StringHandle(pszFolder)) { - return NativeMethods.ISteamUGC_BInitWorkshopForGameServer(CSteamAPIContext.GetSteamUGC(), unWorkshopDepotID, pszFolder2); - } - } - - /// <summary> - /// <para> SuspendDownloads( true ) will suspend all workshop downloads until SuspendDownloads( false ) is called or the game ends</para> - /// </summary> - public static void SuspendDownloads(bool bSuspend) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUGC_SuspendDownloads(CSteamAPIContext.GetSteamUGC(), bSuspend); - } - - /// <summary> - /// <para> usage tracking</para> - /// </summary> - public static SteamAPICall_t StartPlaytimeTracking(PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_StartPlaytimeTracking(CSteamAPIContext.GetSteamUGC(), pvecPublishedFileID, unNumPublishedFileIDs); - } - - public static SteamAPICall_t StopPlaytimeTracking(PublishedFileId_t[] pvecPublishedFileID, uint unNumPublishedFileIDs) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_StopPlaytimeTracking(CSteamAPIContext.GetSteamUGC(), pvecPublishedFileID, unNumPublishedFileIDs); - } - - public static SteamAPICall_t StopPlaytimeTrackingForAllItems() { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_StopPlaytimeTrackingForAllItems(CSteamAPIContext.GetSteamUGC()); - } - - /// <summary> - /// <para> parent-child relationship or dependency management</para> - /// </summary> - public static SteamAPICall_t AddDependency(PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_AddDependency(CSteamAPIContext.GetSteamUGC(), nParentPublishedFileID, nChildPublishedFileID); - } - - public static SteamAPICall_t RemoveDependency(PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_RemoveDependency(CSteamAPIContext.GetSteamUGC(), nParentPublishedFileID, nChildPublishedFileID); - } - - /// <summary> - /// <para> add/remove app dependence/requirements (usually DLC)</para> - /// </summary> - public static SteamAPICall_t AddAppDependency(PublishedFileId_t nPublishedFileID, AppId_t nAppID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_AddAppDependency(CSteamAPIContext.GetSteamUGC(), nPublishedFileID, nAppID); - } - - public static SteamAPICall_t RemoveAppDependency(PublishedFileId_t nPublishedFileID, AppId_t nAppID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_RemoveAppDependency(CSteamAPIContext.GetSteamUGC(), nPublishedFileID, nAppID); - } - - /// <summary> - /// <para> request app dependencies. note that whatever callback you register for GetAppDependenciesResult_t may be called multiple times</para> - /// <para> until all app dependencies have been returned</para> - /// </summary> - public static SteamAPICall_t GetAppDependencies(PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_GetAppDependencies(CSteamAPIContext.GetSteamUGC(), nPublishedFileID); - } - - /// <summary> - /// <para> delete the item without prompting the user</para> - /// </summary> - public static SteamAPICall_t DeleteItem(PublishedFileId_t nPublishedFileID) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_DeleteItem(CSteamAPIContext.GetSteamUGC(), nPublishedFileID); - } - - /// <summary> - /// <para> Show the app's latest Workshop EULA to the user in an overlay window, where they can accept it or not</para> - /// </summary> - public static bool ShowWorkshopEULA() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUGC_ShowWorkshopEULA(CSteamAPIContext.GetSteamUGC()); - } - - /// <summary> - /// <para> Retrieve information related to the user's acceptance or not of the app's specific Workshop EULA</para> - /// </summary> - public static SteamAPICall_t GetWorkshopEULAStatus() { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUGC_GetWorkshopEULAStatus(CSteamAPIContext.GetSteamUGC()); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamugc.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamugc.cs.meta deleted file mode 100644 index a939549..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamugc.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9c0cc287de2de90479be73251828d936 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuser.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuser.cs deleted file mode 100644 index 7fff6ac..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuser.cs +++ /dev/null @@ -1,381 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamUser { - /// <summary> - /// <para> returns the HSteamUser this interface represents</para> - /// <para> this is only used internally by the API, and by a few select interfaces that support multi-user</para> - /// </summary> - public static HSteamUser GetHSteamUser() { - InteropHelp.TestIfAvailableClient(); - return (HSteamUser)NativeMethods.ISteamUser_GetHSteamUser(CSteamAPIContext.GetSteamUser()); - } - - /// <summary> - /// <para> returns true if the Steam client current has a live connection to the Steam servers.</para> - /// <para> If false, it means there is no active connection due to either a networking issue on the local machine, or the Steam server is down/busy.</para> - /// <para> The Steam client will automatically be trying to recreate the connection as often as possible.</para> - /// </summary> - public static bool BLoggedOn() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_BLoggedOn(CSteamAPIContext.GetSteamUser()); - } - - /// <summary> - /// <para> returns the CSteamID of the account currently logged into the Steam client</para> - /// <para> a CSteamID is a unique identifier for an account, and used to differentiate users in all parts of the Steamworks API</para> - /// </summary> - public static CSteamID GetSteamID() { - InteropHelp.TestIfAvailableClient(); - return (CSteamID)NativeMethods.ISteamUser_GetSteamID(CSteamAPIContext.GetSteamUser()); - } - - /// <summary> - /// <para> Multiplayer Authentication functions</para> - /// <para> InitiateGameConnection() starts the state machine for authenticating the game client with the game server</para> - /// <para> It is the client portion of a three-way handshake between the client, the game server, and the steam servers</para> - /// <para> Parameters:</para> - /// <para> void *pAuthBlob - a pointer to empty memory that will be filled in with the authentication token.</para> - /// <para> int cbMaxAuthBlob - the number of bytes of allocated memory in pBlob. Should be at least 2048 bytes.</para> - /// <para> CSteamID steamIDGameServer - the steamID of the game server, received from the game server by the client</para> - /// <para> CGameID gameID - the ID of the current game. For games without mods, this is just CGameID( <appID> )</para> - /// <para> uint32 unIPServer, uint16 usPortServer - the IP address of the game server</para> - /// <para> bool bSecure - whether or not the client thinks that the game server is reporting itself as secure (i.e. VAC is running)</para> - /// <para> return value - returns the number of bytes written to pBlob. If the return is 0, then the buffer passed in was too small, and the call has failed</para> - /// <para> The contents of pBlob should then be sent to the game server, for it to use to complete the authentication process.</para> - /// <para> DEPRECATED! This function will be removed from the SDK in an upcoming version.</para> - /// <para> Please migrate to BeginAuthSession and related functions.</para> - /// </summary> - public static int InitiateGameConnection_DEPRECATED(byte[] pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint unIPServer, ushort usPortServer, bool bSecure) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_InitiateGameConnection_DEPRECATED(CSteamAPIContext.GetSteamUser(), pAuthBlob, cbMaxAuthBlob, steamIDGameServer, unIPServer, usPortServer, bSecure); - } - - /// <summary> - /// <para> notify of disconnect</para> - /// <para> needs to occur when the game client leaves the specified game server, needs to match with the InitiateGameConnection() call</para> - /// <para> DEPRECATED! This function will be removed from the SDK in an upcoming version.</para> - /// <para> Please migrate to BeginAuthSession and related functions.</para> - /// </summary> - public static void TerminateGameConnection_DEPRECATED(uint unIPServer, ushort usPortServer) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUser_TerminateGameConnection_DEPRECATED(CSteamAPIContext.GetSteamUser(), unIPServer, usPortServer); - } - - /// <summary> - /// <para> Legacy functions</para> - /// <para> used by only a few games to track usage events</para> - /// </summary> - public static void TrackAppUsageEvent(CGameID gameID, int eAppUsageEvent, string pchExtraInfo = "") { - InteropHelp.TestIfAvailableClient(); - using (var pchExtraInfo2 = new InteropHelp.UTF8StringHandle(pchExtraInfo)) { - NativeMethods.ISteamUser_TrackAppUsageEvent(CSteamAPIContext.GetSteamUser(), gameID, eAppUsageEvent, pchExtraInfo2); - } - } - - /// <summary> - /// <para> get the local storage folder for current Steam account to write application data, e.g. save games, configs etc.</para> - /// <para> this will usually be something like "C:\Progam Files\Steam\userdata\<SteamID>\<AppID>\local"</para> - /// </summary> - public static bool GetUserDataFolder(out string pchBuffer, int cubBuffer) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchBuffer2 = Marshal.AllocHGlobal(cubBuffer); - bool ret = NativeMethods.ISteamUser_GetUserDataFolder(CSteamAPIContext.GetSteamUser(), pchBuffer2, cubBuffer); - pchBuffer = ret ? InteropHelp.PtrToStringUTF8(pchBuffer2) : null; - Marshal.FreeHGlobal(pchBuffer2); - return ret; - } - - /// <summary> - /// <para> Starts voice recording. Once started, use GetVoice() to get the data</para> - /// </summary> - public static void StartVoiceRecording() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUser_StartVoiceRecording(CSteamAPIContext.GetSteamUser()); - } - - /// <summary> - /// <para> Stops voice recording. Because people often release push-to-talk keys early, the system will keep recording for</para> - /// <para> a little bit after this function is called. GetVoice() should continue to be called until it returns</para> - /// <para> k_eVoiceResultNotRecording</para> - /// </summary> - public static void StopVoiceRecording() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUser_StopVoiceRecording(CSteamAPIContext.GetSteamUser()); - } - - /// <summary> - /// <para> Determine the size of captured audio data that is available from GetVoice.</para> - /// <para> Most applications will only use compressed data and should ignore the other</para> - /// <para> parameters, which exist primarily for backwards compatibility. See comments</para> - /// <para> below for further explanation of "uncompressed" data.</para> - /// </summary> - public static EVoiceResult GetAvailableVoice(out uint pcbCompressed) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_GetAvailableVoice(CSteamAPIContext.GetSteamUser(), out pcbCompressed, IntPtr.Zero, 0); - } - - /// <summary> - /// <para> ---------------------------------------------------------------------------</para> - /// <para> NOTE: "uncompressed" audio is a deprecated feature and should not be used</para> - /// <para> by most applications. It is raw single-channel 16-bit PCM wave data which</para> - /// <para> may have been run through preprocessing filters and/or had silence removed,</para> - /// <para> so the uncompressed audio could have a shorter duration than you expect.</para> - /// <para> There may be no data at all during long periods of silence. Also, fetching</para> - /// <para> uncompressed audio will cause GetVoice to discard any leftover compressed</para> - /// <para> audio, so you must fetch both types at once. Finally, GetAvailableVoice is</para> - /// <para> not precisely accurate when the uncompressed size is requested. So if you</para> - /// <para> really need to use uncompressed audio, you should call GetVoice frequently</para> - /// <para> with two very large (20kb+) output buffers instead of trying to allocate</para> - /// <para> perfectly-sized buffers. But most applications should ignore all of these</para> - /// <para> details and simply leave the "uncompressed" parameters as NULL/zero.</para> - /// <para> ---------------------------------------------------------------------------</para> - /// <para> Read captured audio data from the microphone buffer. This should be called</para> - /// <para> at least once per frame, and preferably every few milliseconds, to keep the</para> - /// <para> microphone input delay as low as possible. Most applications will only use</para> - /// <para> compressed data and should pass NULL/zero for the "uncompressed" parameters.</para> - /// <para> Compressed data can be transmitted by your application and decoded into raw</para> - /// <para> using the DecompressVoice function below.</para> - /// </summary> - 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, false, IntPtr.Zero, 0, IntPtr.Zero, 0); - } - - /// <summary> - /// <para> Decodes the compressed voice data returned by GetVoice. The output data is</para> - /// <para> raw single-channel 16-bit PCM audio. The decoder supports any sample rate</para> - /// <para> from 11025 to 48000; see GetVoiceOptimalSampleRate() below for details.</para> - /// <para> If the output buffer is not large enough, then *nBytesWritten will be set</para> - /// <para> to the required buffer size, and k_EVoiceResultBufferTooSmall is returned.</para> - /// <para> It is suggested to start with a 20kb buffer and reallocate as necessary.</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> This returns the native sample rate of the Steam voice decompressor; using</para> - /// <para> this sample rate for DecompressVoice will perform the least CPU processing.</para> - /// <para> However, the final audio quality will depend on how well the audio device</para> - /// <para> (and/or your application's audio output SDK) deals with lower sample rates.</para> - /// <para> You may find that you get the best audio output quality when you ignore</para> - /// <para> this function and use the native sample rate of your audio output device,</para> - /// <para> which is usually 48000 or 44100.</para> - /// </summary> - public static uint GetVoiceOptimalSampleRate() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_GetVoiceOptimalSampleRate(CSteamAPIContext.GetSteamUser()); - } - - /// <summary> - /// <para> Retrieve ticket to be sent to the entity who wishes to authenticate you.</para> - /// <para> pcbTicket retrieves the length of the actual ticket.</para> - /// <para> SteamNetworkingIdentity is an optional input parameter to hold the public IP address or SteamID of the entity you are connecting to</para> - /// <para> if an IP address is passed Steam will only allow the ticket to be used by an entity with that IP address</para> - /// <para> if a Steam ID is passed Steam will only allow the ticket to be used by that Steam ID</para> - /// <para> not to be used for "ISteamUserAuth\AuthenticateUserTicket" - it will fail</para> - /// </summary> - public static HAuthTicket GetAuthSessionTicket(byte[] pTicket, int cbMaxTicket, out uint pcbTicket, ref SteamNetworkingIdentity pSteamNetworkingIdentity) { - InteropHelp.TestIfAvailableClient(); - return (HAuthTicket)NativeMethods.ISteamUser_GetAuthSessionTicket(CSteamAPIContext.GetSteamUser(), pTicket, cbMaxTicket, out pcbTicket, ref pSteamNetworkingIdentity); - } - - /// <summary> - /// <para> Request a ticket which will be used for webapi "ISteamUserAuth\AuthenticateUserTicket"</para> - /// <para> pchIdentity is an optional input parameter to identify the service the ticket will be sent to</para> - /// <para> the ticket will be returned in callback GetTicketForWebApiResponse_t</para> - /// </summary> - public static HAuthTicket GetAuthTicketForWebApi(string pchIdentity) { - InteropHelp.TestIfAvailableClient(); - using (var pchIdentity2 = new InteropHelp.UTF8StringHandle(pchIdentity)) { - return (HAuthTicket)NativeMethods.ISteamUser_GetAuthTicketForWebApi(CSteamAPIContext.GetSteamUser(), pchIdentity2); - } - } - - /// <summary> - /// <para> Authenticate ticket from entity steamID to be sure it is valid and isnt reused</para> - /// <para> Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse )</para> - /// </summary> - public static EBeginAuthSessionResult BeginAuthSession(byte[] pAuthTicket, int cbAuthTicket, CSteamID steamID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_BeginAuthSession(CSteamAPIContext.GetSteamUser(), pAuthTicket, cbAuthTicket, steamID); - } - - /// <summary> - /// <para> Stop tracking started by BeginAuthSession - called when no longer playing game with this entity</para> - /// </summary> - public static void EndAuthSession(CSteamID steamID) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUser_EndAuthSession(CSteamAPIContext.GetSteamUser(), steamID); - } - - /// <summary> - /// <para> Cancel auth ticket from GetAuthSessionTicket, called when no longer playing game with the entity you gave the ticket to</para> - /// </summary> - public static void CancelAuthTicket(HAuthTicket hAuthTicket) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUser_CancelAuthTicket(CSteamAPIContext.GetSteamUser(), hAuthTicket); - } - - /// <summary> - /// <para> After receiving a user's authentication data, and passing it to BeginAuthSession, use this function</para> - /// <para> to determine if the user owns downloadable content specified by the provided AppID.</para> - /// </summary> - public static EUserHasLicenseForAppResult UserHasLicenseForApp(CSteamID steamID, AppId_t appID) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_UserHasLicenseForApp(CSteamAPIContext.GetSteamUser(), steamID, appID); - } - - /// <summary> - /// <para> returns true if this users looks like they are behind a NAT device. Only valid once the user has connected to steam</para> - /// <para> (i.e a SteamServersConnected_t has been issued) and may not catch all forms of NAT.</para> - /// </summary> - public static bool BIsBehindNAT() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_BIsBehindNAT(CSteamAPIContext.GetSteamUser()); - } - - /// <summary> - /// <para> set data to be replicated to friends so that they can join your game</para> - /// <para> CSteamID steamIDGameServer - the steamID of the game server, received from the game server by the client</para> - /// <para> uint32 unIPServer, uint16 usPortServer - the IP address of the game server</para> - /// </summary> - public static void AdvertiseGame(CSteamID steamIDGameServer, uint unIPServer, ushort usPortServer) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUser_AdvertiseGame(CSteamAPIContext.GetSteamUser(), steamIDGameServer, unIPServer, usPortServer); - } - - /// <summary> - /// <para> Requests a ticket encrypted with an app specific shared key</para> - /// <para> pDataToInclude, cbDataToInclude will be encrypted into the ticket</para> - /// <para> ( This is asynchronous, you must wait for the ticket to be completed by the server )</para> - /// </summary> - public static SteamAPICall_t RequestEncryptedAppTicket(byte[] pDataToInclude, int cbDataToInclude) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUser_RequestEncryptedAppTicket(CSteamAPIContext.GetSteamUser(), pDataToInclude, cbDataToInclude); - } - - /// <summary> - /// <para> Retrieves a finished ticket.</para> - /// <para> If no ticket is available, or your buffer is too small, returns false.</para> - /// <para> Upon exit, *pcbTicket will be either the size of the ticket copied into your buffer</para> - /// <para> (if true was returned), or the size needed (if false was returned). To determine the</para> - /// <para> proper size of the ticket, you can pass pTicket=NULL and cbMaxTicket=0; if a ticket</para> - /// <para> is available, *pcbTicket will contain the size needed, otherwise it will be zero.</para> - /// </summary> - public static bool GetEncryptedAppTicket(byte[] pTicket, int cbMaxTicket, out uint pcbTicket) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_GetEncryptedAppTicket(CSteamAPIContext.GetSteamUser(), pTicket, cbMaxTicket, out pcbTicket); - } - - /// <summary> - /// <para> Trading Card badges data access</para> - /// <para> if you only have one set of cards, the series will be 1</para> - /// <para> the user has can have two different badges for a series; the regular (max level 5) and the foil (max level 1)</para> - /// </summary> - public static int GetGameBadgeLevel(int nSeries, bool bFoil) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_GetGameBadgeLevel(CSteamAPIContext.GetSteamUser(), nSeries, bFoil); - } - - /// <summary> - /// <para> gets the Steam Level of the user, as shown on their profile</para> - /// </summary> - public static int GetPlayerSteamLevel() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_GetPlayerSteamLevel(CSteamAPIContext.GetSteamUser()); - } - - /// <summary> - /// <para> Requests a URL which authenticates an in-game browser for store check-out,</para> - /// <para> and then redirects to the specified URL. As long as the in-game browser</para> - /// <para> accepts and handles session cookies, Steam microtransaction checkout pages</para> - /// <para> will automatically recognize the user instead of presenting a login page.</para> - /// <para> The result of this API call will be a StoreAuthURLResponse_t callback.</para> - /// <para> NOTE: The URL has a very short lifetime to prevent history-snooping attacks,</para> - /// <para> so you should only call this API when you are about to launch the browser,</para> - /// <para> or else immediately navigate to the result URL using a hidden browser window.</para> - /// <para> NOTE 2: The resulting authorization cookie has an expiration time of one day,</para> - /// <para> so it would be a good idea to request and visit a new auth URL every 12 hours.</para> - /// </summary> - public static SteamAPICall_t RequestStoreAuthURL(string pchRedirectURL) { - InteropHelp.TestIfAvailableClient(); - using (var pchRedirectURL2 = new InteropHelp.UTF8StringHandle(pchRedirectURL)) { - return (SteamAPICall_t)NativeMethods.ISteamUser_RequestStoreAuthURL(CSteamAPIContext.GetSteamUser(), pchRedirectURL2); - } - } - - /// <summary> - /// <para> gets whether the users phone number is verified</para> - /// </summary> - public static bool BIsPhoneVerified() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_BIsPhoneVerified(CSteamAPIContext.GetSteamUser()); - } - - /// <summary> - /// <para> gets whether the user has two factor enabled on their account</para> - /// </summary> - public static bool BIsTwoFactorEnabled() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_BIsTwoFactorEnabled(CSteamAPIContext.GetSteamUser()); - } - - /// <summary> - /// <para> gets whether the users phone number is identifying</para> - /// </summary> - public static bool BIsPhoneIdentifying() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_BIsPhoneIdentifying(CSteamAPIContext.GetSteamUser()); - } - - /// <summary> - /// <para> gets whether the users phone number is awaiting (re)verification</para> - /// </summary> - 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()); - } - - /// <summary> - /// <para> Retrieves anti indulgence / duration control for current user</para> - /// </summary> - public static SteamAPICall_t GetDurationControl() { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUser_GetDurationControl(CSteamAPIContext.GetSteamUser()); - } - - /// <summary> - /// <para> Advise steam china duration control system about the online state of the game.</para> - /// <para> This will prevent offline gameplay time from counting against a user's</para> - /// <para> playtime limits.</para> - /// </summary> - public static bool BSetDurationControlOnlineState(EDurationControlOnlineState eNewState) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUser_BSetDurationControlOnlineState(CSteamAPIContext.GetSteamUser(), eNewState); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuser.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuser.cs.meta deleted file mode 100644 index bf3276b..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuser.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b73c7aa3e2082434c854c9c7e17ccfd8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuserstats.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuserstats.cs deleted file mode 100644 index 97bf38a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuserstats.cs +++ /dev/null @@ -1,474 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamUserStats { - /// <summary> - /// <para> Ask the server to send down this user's data and achievements for this game</para> - /// </summary> - public static bool RequestCurrentStats() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUserStats_RequestCurrentStats(CSteamAPIContext.GetSteamUserStats()); - } - - /// <summary> - /// <para> Data accessors</para> - /// </summary> - public static bool GetStat(string pchName, out int pData) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_GetStatInt32(CSteamAPIContext.GetSteamUserStats(), pchName2, out pData); - } - } - - public static bool GetStat(string pchName, out float pData) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_GetStatFloat(CSteamAPIContext.GetSteamUserStats(), pchName2, out pData); - } - } - - /// <summary> - /// <para> Set / update data</para> - /// </summary> - public static bool SetStat(string pchName, int nData) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_SetStatInt32(CSteamAPIContext.GetSteamUserStats(), pchName2, nData); - } - } - - public static bool SetStat(string pchName, float fData) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_SetStatFloat(CSteamAPIContext.GetSteamUserStats(), pchName2, fData); - } - } - - public static bool UpdateAvgRateStat(string pchName, float flCountThisSession, double dSessionLength) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_UpdateAvgRateStat(CSteamAPIContext.GetSteamUserStats(), pchName2, flCountThisSession, dSessionLength); - } - } - - /// <summary> - /// <para> Achievement flag accessors</para> - /// </summary> - public static bool GetAchievement(string pchName, out bool pbAchieved) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_GetAchievement(CSteamAPIContext.GetSteamUserStats(), pchName2, out pbAchieved); - } - } - - public static bool SetAchievement(string pchName) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_SetAchievement(CSteamAPIContext.GetSteamUserStats(), pchName2); - } - } - - public static bool ClearAchievement(string pchName) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_ClearAchievement(CSteamAPIContext.GetSteamUserStats(), pchName2); - } - } - - /// <summary> - /// <para> Get the achievement status, and the time it was unlocked if unlocked.</para> - /// <para> If the return value is true, but the unlock time is zero, that means it was unlocked before Steam</para> - /// <para> began tracking achievement unlock times (December 2009). Time is seconds since January 1, 1970.</para> - /// </summary> - public static bool GetAchievementAndUnlockTime(string pchName, out bool pbAchieved, out uint punUnlockTime) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_GetAchievementAndUnlockTime(CSteamAPIContext.GetSteamUserStats(), pchName2, out pbAchieved, out punUnlockTime); - } - } - - /// <summary> - /// <para> Store the current data on the server, will get a callback when set</para> - /// <para> And one callback for every new achievement</para> - /// <para> If the callback has a result of k_EResultInvalidParam, one or more stats</para> - /// <para> uploaded has been rejected, either because they broke constraints</para> - /// <para> or were out of date. In this case the server sends back updated values.</para> - /// <para> The stats should be re-iterated to keep in sync.</para> - /// </summary> - public static bool StoreStats() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUserStats_StoreStats(CSteamAPIContext.GetSteamUserStats()); - } - - /// <summary> - /// <para> Achievement / GroupAchievement metadata</para> - /// <para> Gets the icon of the achievement, which is a handle to be used in ISteamUtils::GetImageRGBA(), or 0 if none set.</para> - /// <para> A return value of 0 may indicate we are still fetching data, and you can wait for the UserAchievementIconFetched_t callback</para> - /// <para> which will notify you when the bits are ready. If the callback still returns zero, then there is no image set for the</para> - /// <para> specified achievement.</para> - /// </summary> - public static int GetAchievementIcon(string pchName) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_GetAchievementIcon(CSteamAPIContext.GetSteamUserStats(), pchName2); - } - } - - /// <summary> - /// <para> Get general attributes for an achievement. Accepts the following keys:</para> - /// <para> - "name" and "desc" for retrieving the localized achievement name and description (returned in UTF8)</para> - /// <para> - "hidden" for retrieving if an achievement is hidden (returns "0" when not hidden, "1" when hidden)</para> - /// </summary> - public static string GetAchievementDisplayAttribute(string pchName, string pchKey) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) - using (var pchKey2 = new InteropHelp.UTF8StringHandle(pchKey)) { - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamUserStats_GetAchievementDisplayAttribute(CSteamAPIContext.GetSteamUserStats(), pchName2, pchKey2)); - } - } - - /// <summary> - /// <para> Achievement progress - triggers an AchievementProgress callback, that is all.</para> - /// <para> Calling this w/ N out of N progress will NOT set the achievement, the game must still do that.</para> - /// </summary> - public static bool IndicateAchievementProgress(string pchName, uint nCurProgress, uint nMaxProgress) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_IndicateAchievementProgress(CSteamAPIContext.GetSteamUserStats(), pchName2, nCurProgress, nMaxProgress); - } - } - - /// <summary> - /// <para> Used for iterating achievements. In general games should not need these functions because they should have a</para> - /// <para> list of existing achievements compiled into them</para> - /// </summary> - public static uint GetNumAchievements() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUserStats_GetNumAchievements(CSteamAPIContext.GetSteamUserStats()); - } - - /// <summary> - /// <para> Get achievement name iAchievement in [0,GetNumAchievements)</para> - /// </summary> - public static string GetAchievementName(uint iAchievement) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamUserStats_GetAchievementName(CSteamAPIContext.GetSteamUserStats(), iAchievement)); - } - - /// <summary> - /// <para> Friends stats & achievements</para> - /// <para> downloads stats for the user</para> - /// <para> returns a UserStatsReceived_t received when completed</para> - /// <para> if the other user has no stats, UserStatsReceived_t.m_eResult will be set to k_EResultFail</para> - /// <para> these stats won't be auto-updated; you'll need to call RequestUserStats() again to refresh any data</para> - /// </summary> - public static SteamAPICall_t RequestUserStats(CSteamID steamIDUser) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUserStats_RequestUserStats(CSteamAPIContext.GetSteamUserStats(), steamIDUser); - } - - /// <summary> - /// <para> requests stat information for a user, usable after a successful call to RequestUserStats()</para> - /// </summary> - public static bool GetUserStat(CSteamID steamIDUser, string pchName, out int pData) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_GetUserStatInt32(CSteamAPIContext.GetSteamUserStats(), steamIDUser, pchName2, out pData); - } - } - - public static bool GetUserStat(CSteamID steamIDUser, string pchName, out float pData) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_GetUserStatFloat(CSteamAPIContext.GetSteamUserStats(), steamIDUser, pchName2, out pData); - } - } - - public static bool GetUserAchievement(CSteamID steamIDUser, string pchName, out bool pbAchieved) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_GetUserAchievement(CSteamAPIContext.GetSteamUserStats(), steamIDUser, pchName2, out pbAchieved); - } - } - - /// <summary> - /// <para> See notes for GetAchievementAndUnlockTime above</para> - /// </summary> - public static bool GetUserAchievementAndUnlockTime(CSteamID steamIDUser, string pchName, out bool pbAchieved, out uint punUnlockTime) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_GetUserAchievementAndUnlockTime(CSteamAPIContext.GetSteamUserStats(), steamIDUser, pchName2, out pbAchieved, out punUnlockTime); - } - } - - /// <summary> - /// <para> Reset stats</para> - /// </summary> - public static bool ResetAllStats(bool bAchievementsToo) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUserStats_ResetAllStats(CSteamAPIContext.GetSteamUserStats(), bAchievementsToo); - } - - /// <summary> - /// <para> Leaderboard functions</para> - /// <para> asks the Steam back-end for a leaderboard by name, and will create it if it's not yet</para> - /// <para> This call is asynchronous, with the result returned in LeaderboardFindResult_t</para> - /// </summary> - public static SteamAPICall_t FindOrCreateLeaderboard(string pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType) { - InteropHelp.TestIfAvailableClient(); - using (var pchLeaderboardName2 = new InteropHelp.UTF8StringHandle(pchLeaderboardName)) { - return (SteamAPICall_t)NativeMethods.ISteamUserStats_FindOrCreateLeaderboard(CSteamAPIContext.GetSteamUserStats(), pchLeaderboardName2, eLeaderboardSortMethod, eLeaderboardDisplayType); - } - } - - /// <summary> - /// <para> as above, but won't create the leaderboard if it's not found</para> - /// <para> This call is asynchronous, with the result returned in LeaderboardFindResult_t</para> - /// </summary> - public static SteamAPICall_t FindLeaderboard(string pchLeaderboardName) { - InteropHelp.TestIfAvailableClient(); - using (var pchLeaderboardName2 = new InteropHelp.UTF8StringHandle(pchLeaderboardName)) { - return (SteamAPICall_t)NativeMethods.ISteamUserStats_FindLeaderboard(CSteamAPIContext.GetSteamUserStats(), pchLeaderboardName2); - } - } - - /// <summary> - /// <para> returns the name of a leaderboard</para> - /// </summary> - public static string GetLeaderboardName(SteamLeaderboard_t hSteamLeaderboard) { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamUserStats_GetLeaderboardName(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboard)); - } - - /// <summary> - /// <para> returns the total number of entries in a leaderboard, as of the last request</para> - /// </summary> - public static int GetLeaderboardEntryCount(SteamLeaderboard_t hSteamLeaderboard) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUserStats_GetLeaderboardEntryCount(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboard); - } - - /// <summary> - /// <para> returns the sort method of the leaderboard</para> - /// </summary> - public static ELeaderboardSortMethod GetLeaderboardSortMethod(SteamLeaderboard_t hSteamLeaderboard) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUserStats_GetLeaderboardSortMethod(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboard); - } - - /// <summary> - /// <para> returns the display type of the leaderboard</para> - /// </summary> - public static ELeaderboardDisplayType GetLeaderboardDisplayType(SteamLeaderboard_t hSteamLeaderboard) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUserStats_GetLeaderboardDisplayType(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboard); - } - - /// <summary> - /// <para> Asks the Steam back-end for a set of rows in the leaderboard.</para> - /// <para> This call is asynchronous, with the result returned in LeaderboardScoresDownloaded_t</para> - /// <para> LeaderboardScoresDownloaded_t will contain a handle to pull the results from GetDownloadedLeaderboardEntries() (below)</para> - /// <para> You can ask for more entries than exist, and it will return as many as do exist.</para> - /// <para> k_ELeaderboardDataRequestGlobal requests rows in the leaderboard from the full table, with nRangeStart & nRangeEnd in the range [1, TotalEntries]</para> - /// <para> k_ELeaderboardDataRequestGlobalAroundUser requests rows around the current user, nRangeStart being negate</para> - /// <para> e.g. DownloadLeaderboardEntries( hLeaderboard, k_ELeaderboardDataRequestGlobalAroundUser, -3, 3 ) will return 7 rows, 3 before the user, 3 after</para> - /// <para> k_ELeaderboardDataRequestFriends requests all the rows for friends of the current user</para> - /// </summary> - public static SteamAPICall_t DownloadLeaderboardEntries(SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUserStats_DownloadLeaderboardEntries(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboard, eLeaderboardDataRequest, nRangeStart, nRangeEnd); - } - - /// <summary> - /// <para> as above, but downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers</para> - /// <para> if a user doesn't have a leaderboard entry, they won't be included in the result</para> - /// <para> a max of 100 users can be downloaded at a time, with only one outstanding call at a time</para> - /// </summary> - public static SteamAPICall_t DownloadLeaderboardEntriesForUsers(SteamLeaderboard_t hSteamLeaderboard, CSteamID[] prgUsers, int cUsers) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUserStats_DownloadLeaderboardEntriesForUsers(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboard, prgUsers, cUsers); - } - - /// <summary> - /// <para> Returns data about a single leaderboard entry</para> - /// <para> use a for loop from 0 to LeaderboardScoresDownloaded_t::m_cEntryCount to get all the downloaded entries</para> - /// <para> e.g.</para> - /// <para> void OnLeaderboardScoresDownloaded( LeaderboardScoresDownloaded_t *pLeaderboardScoresDownloaded )</para> - /// <para> {</para> - /// <para> for ( int index = 0; index < pLeaderboardScoresDownloaded->m_cEntryCount; index++ )</para> - /// <para> {</para> - /// <para> LeaderboardEntry_t leaderboardEntry;</para> - /// <para> int32 details[3]; // we know this is how many we've stored previously</para> - /// <para> GetDownloadedLeaderboardEntry( pLeaderboardScoresDownloaded->m_hSteamLeaderboardEntries, index, &leaderboardEntry, details, 3 );</para> - /// <para> assert( leaderboardEntry.m_cDetails == 3 );</para> - /// <para> ...</para> - /// <para> }</para> - /// <para> once you've accessed all the entries, the data will be free'd, and the SteamLeaderboardEntries_t handle will become invalid</para> - /// </summary> - public static bool GetDownloadedLeaderboardEntry(SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, out LeaderboardEntry_t pLeaderboardEntry, int[] pDetails, int cDetailsMax) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUserStats_GetDownloadedLeaderboardEntry(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboardEntries, index, out pLeaderboardEntry, pDetails, cDetailsMax); - } - - /// <summary> - /// <para> Uploads a user score to the Steam back-end.</para> - /// <para> This call is asynchronous, with the result returned in LeaderboardScoreUploaded_t</para> - /// <para> Details are extra game-defined information regarding how the user got that score</para> - /// <para> pScoreDetails points to an array of int32's, cScoreDetailsCount is the number of int32's in the list</para> - /// </summary> - public static SteamAPICall_t UploadLeaderboardScore(SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int nScore, int[] pScoreDetails, int cScoreDetailsCount) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUserStats_UploadLeaderboardScore(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboard, eLeaderboardUploadScoreMethod, nScore, pScoreDetails, cScoreDetailsCount); - } - - /// <summary> - /// <para> Attaches a piece of user generated content the user's entry on a leaderboard.</para> - /// <para> hContent is a handle to a piece of user generated content that was shared using ISteamUserRemoteStorage::FileShare().</para> - /// <para> This call is asynchronous, with the result returned in LeaderboardUGCSet_t.</para> - /// </summary> - public static SteamAPICall_t AttachLeaderboardUGC(SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUserStats_AttachLeaderboardUGC(CSteamAPIContext.GetSteamUserStats(), hSteamLeaderboard, hUGC); - } - - /// <summary> - /// <para> Retrieves the number of players currently playing your game (online + offline)</para> - /// <para> This call is asynchronous, with the result returned in NumberOfCurrentPlayers_t</para> - /// </summary> - public static SteamAPICall_t GetNumberOfCurrentPlayers() { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUserStats_GetNumberOfCurrentPlayers(CSteamAPIContext.GetSteamUserStats()); - } - - /// <summary> - /// <para> Requests that Steam fetch data on the percentage of players who have received each achievement</para> - /// <para> for the game globally.</para> - /// <para> This call is asynchronous, with the result returned in GlobalAchievementPercentagesReady_t.</para> - /// </summary> - public static SteamAPICall_t RequestGlobalAchievementPercentages() { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUserStats_RequestGlobalAchievementPercentages(CSteamAPIContext.GetSteamUserStats()); - } - - /// <summary> - /// <para> Get the info on the most achieved achievement for the game, returns an iterator index you can use to fetch</para> - /// <para> the next most achieved afterwards. Will return -1 if there is no data on achievement</para> - /// <para> percentages (ie, you haven't called RequestGlobalAchievementPercentages and waited on the callback).</para> - /// </summary> - public static int GetMostAchievedAchievementInfo(out string pchName, uint unNameBufLen, out float pflPercent, out bool pbAchieved) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchName2 = Marshal.AllocHGlobal((int)unNameBufLen); - int ret = NativeMethods.ISteamUserStats_GetMostAchievedAchievementInfo(CSteamAPIContext.GetSteamUserStats(), pchName2, unNameBufLen, out pflPercent, out pbAchieved); - pchName = ret != -1 ? InteropHelp.PtrToStringUTF8(pchName2) : null; - Marshal.FreeHGlobal(pchName2); - return ret; - } - - /// <summary> - /// <para> Get the info on the next most achieved achievement for the game. Call this after GetMostAchievedAchievementInfo or another</para> - /// <para> GetNextMostAchievedAchievementInfo call passing the iterator from the previous call. Returns -1 after the last</para> - /// <para> achievement has been iterated.</para> - /// </summary> - public static int GetNextMostAchievedAchievementInfo(int iIteratorPrevious, out string pchName, uint unNameBufLen, out float pflPercent, out bool pbAchieved) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchName2 = Marshal.AllocHGlobal((int)unNameBufLen); - int ret = NativeMethods.ISteamUserStats_GetNextMostAchievedAchievementInfo(CSteamAPIContext.GetSteamUserStats(), iIteratorPrevious, pchName2, unNameBufLen, out pflPercent, out pbAchieved); - pchName = ret != -1 ? InteropHelp.PtrToStringUTF8(pchName2) : null; - Marshal.FreeHGlobal(pchName2); - return ret; - } - - /// <summary> - /// <para> Returns the percentage of users who have achieved the specified achievement.</para> - /// </summary> - public static bool GetAchievementAchievedPercent(string pchName, out float pflPercent) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_GetAchievementAchievedPercent(CSteamAPIContext.GetSteamUserStats(), pchName2, out pflPercent); - } - } - - /// <summary> - /// <para> Requests global stats data, which is available for stats marked as "aggregated".</para> - /// <para> This call is asynchronous, with the results returned in GlobalStatsReceived_t.</para> - /// <para> nHistoryDays specifies how many days of day-by-day history to retrieve in addition</para> - /// <para> to the overall totals. The limit is 60.</para> - /// </summary> - public static SteamAPICall_t RequestGlobalStats(int nHistoryDays) { - InteropHelp.TestIfAvailableClient(); - return (SteamAPICall_t)NativeMethods.ISteamUserStats_RequestGlobalStats(CSteamAPIContext.GetSteamUserStats(), nHistoryDays); - } - - /// <summary> - /// <para> Gets the lifetime totals for an aggregated stat</para> - /// </summary> - public static bool GetGlobalStat(string pchStatName, out long pData) { - InteropHelp.TestIfAvailableClient(); - using (var pchStatName2 = new InteropHelp.UTF8StringHandle(pchStatName)) { - return NativeMethods.ISteamUserStats_GetGlobalStatInt64(CSteamAPIContext.GetSteamUserStats(), pchStatName2, out pData); - } - } - - public static bool GetGlobalStat(string pchStatName, out double pData) { - InteropHelp.TestIfAvailableClient(); - using (var pchStatName2 = new InteropHelp.UTF8StringHandle(pchStatName)) { - return NativeMethods.ISteamUserStats_GetGlobalStatDouble(CSteamAPIContext.GetSteamUserStats(), pchStatName2, out pData); - } - } - - /// <summary> - /// <para> Gets history for an aggregated stat. pData will be filled with daily values, starting with today.</para> - /// <para> So when called, pData[0] will be today, pData[1] will be yesterday, and pData[2] will be two days ago,</para> - /// <para> etc. cubData is the size in bytes of the pubData buffer. Returns the number of</para> - /// <para> elements actually set.</para> - /// </summary> - public static int GetGlobalStatHistory(string pchStatName, long[] pData, uint cubData) { - InteropHelp.TestIfAvailableClient(); - using (var pchStatName2 = new InteropHelp.UTF8StringHandle(pchStatName)) { - return NativeMethods.ISteamUserStats_GetGlobalStatHistoryInt64(CSteamAPIContext.GetSteamUserStats(), pchStatName2, pData, cubData); - } - } - - public static int GetGlobalStatHistory(string pchStatName, double[] pData, uint cubData) { - InteropHelp.TestIfAvailableClient(); - using (var pchStatName2 = new InteropHelp.UTF8StringHandle(pchStatName)) { - return NativeMethods.ISteamUserStats_GetGlobalStatHistoryDouble(CSteamAPIContext.GetSteamUserStats(), pchStatName2, pData, cubData); - } - } - - /// <summary> - /// <para> For achievements that have related Progress stats, use this to query what the bounds of that progress are.</para> - /// <para> You may want this info to selectively call IndicateAchievementProgress when appropriate milestones of progress</para> - /// <para> have been made, to show a progress notification to the user.</para> - /// </summary> - public static bool GetAchievementProgressLimits(string pchName, out int pnMinProgress, out int pnMaxProgress) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_GetAchievementProgressLimitsInt32(CSteamAPIContext.GetSteamUserStats(), pchName2, out pnMinProgress, out pnMaxProgress); - } - } - - public static bool GetAchievementProgressLimits(string pchName, out float pfMinProgress, out float pfMaxProgress) { - InteropHelp.TestIfAvailableClient(); - using (var pchName2 = new InteropHelp.UTF8StringHandle(pchName)) { - return NativeMethods.ISteamUserStats_GetAchievementProgressLimitsFloat(CSteamAPIContext.GetSteamUserStats(), pchName2, out pfMinProgress, out pfMaxProgress); - } - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuserstats.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuserstats.cs.meta deleted file mode 100644 index 87748eb..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamuserstats.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c63c24edcbb001443a96ccfd6bb09d30 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamutils.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamutils.cs deleted file mode 100644 index 1952b10..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamutils.cs +++ /dev/null @@ -1,356 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamUtils { - /// <summary> - /// <para> return the number of seconds since the user</para> - /// </summary> - public static uint GetSecondsSinceAppActive() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_GetSecondsSinceAppActive(CSteamAPIContext.GetSteamUtils()); - } - - public static uint GetSecondsSinceComputerActive() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_GetSecondsSinceComputerActive(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> the universe this client is connecting to</para> - /// </summary> - public static EUniverse GetConnectedUniverse() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_GetConnectedUniverse(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time)</para> - /// </summary> - public static uint GetServerRealTime() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_GetServerRealTime(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database)</para> - /// <para> e.g "US" or "UK".</para> - /// </summary> - public static string GetIPCountry() { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamUtils_GetIPCountry(CSteamAPIContext.GetSteamUtils())); - } - - /// <summary> - /// <para> returns true if the image exists, and valid sizes were filled out</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> returns true if the image exists, and the buffer was successfully filled out</para> - /// <para> results are returned in RGBA format</para> - /// <para> the destination buffer size should be 4 * height * width * sizeof(char)</para> - /// </summary> - public static bool GetImageRGBA(int iImage, byte[] pubDest, int nDestBufferSize) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_GetImageRGBA(CSteamAPIContext.GetSteamUtils(), iImage, pubDest, nDestBufferSize); - } - - /// <summary> - /// <para> return the amount of battery power left in the current system in % [0..100], 255 for being on AC power</para> - /// </summary> - public static byte GetCurrentBatteryPower() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_GetCurrentBatteryPower(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> returns the appID of the current process</para> - /// </summary> - public static AppId_t GetAppID() { - InteropHelp.TestIfAvailableClient(); - return (AppId_t)NativeMethods.ISteamUtils_GetAppID(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Sets the position where the overlay instance for the currently calling game should show notifications.</para> - /// <para> This position is per-game and if this function is called from outside of a game context it will do nothing.</para> - /// </summary> - public static void SetOverlayNotificationPosition(ENotificationPosition eNotificationPosition) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUtils_SetOverlayNotificationPosition(CSteamAPIContext.GetSteamUtils(), eNotificationPosition); - } - - /// <summary> - /// <para> API asynchronous call results</para> - /// <para> can be used directly, but more commonly used via the callback dispatch API (see steam_api.h)</para> - /// </summary> - 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); - } - - /// <summary> - /// <para> returns the number of IPC calls made since the last time this function was called</para> - /// <para> Used for perf debugging so you can understand how many IPC calls your game makes per frame</para> - /// <para> Every IPC call is at minimum a thread context switch if not a process one so you want to rate</para> - /// <para> control how often you do them.</para> - /// </summary> - public static uint GetIPCCallCount() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_GetIPCCallCount(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> API warning handling</para> - /// <para> 'int' is the severity; 0 for msg, 1 for warning</para> - /// <para> 'const char *' is the text of the message</para> - /// <para> callbacks will occur directly after the API function is called that generated the warning or message</para> - /// </summary> - public static void SetWarningMessageHook(SteamAPIWarningMessageHook_t pFunction) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUtils_SetWarningMessageHook(CSteamAPIContext.GetSteamUtils(), pFunction); - } - - /// <summary> - /// <para> Returns true if the overlay is running & the user can access it. The overlay process could take a few seconds to</para> - /// <para> start & hook the game process, so this function will initially return false while the overlay is loading.</para> - /// </summary> - public static bool IsOverlayEnabled() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_IsOverlayEnabled(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Normally this call is unneeded if your game has a constantly running frame loop that calls the</para> - /// <para> D3D Present API, or OGL SwapBuffers API every frame.</para> - /// <para> However, if you have a game that only refreshes the screen on an event driven basis then that can break</para> - /// <para> the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also</para> - /// <para> need to Present() to the screen any time an even needing a notification happens or when the overlay is</para> - /// <para> brought up over the game by a user. You can use this API to ask the overlay if it currently need a present</para> - /// <para> in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you</para> - /// <para> refresh the screen with Present or SwapBuffers to allow the overlay to do it's work.</para> - /// </summary> - public static bool BOverlayNeedsPresent() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_BOverlayNeedsPresent(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Asynchronous call to check if an executable file has been signed using the public key set on the signing tab</para> - /// <para> of the partner site, for example to refuse to load modified executable files.</para> - /// <para> The result is returned in CheckFileSignature_t.</para> - /// <para> k_ECheckFileSignatureNoSignaturesFoundForThisApp - This app has not been configured on the signing tab of the partner site to enable this function.</para> - /// <para> k_ECheckFileSignatureNoSignaturesFoundForThisFile - This file is not listed on the signing tab for the partner site.</para> - /// <para> k_ECheckFileSignatureFileNotFound - The file does not exist on disk.</para> - /// <para> k_ECheckFileSignatureInvalidSignature - The file exists, and the signing tab has been set for this file, but the file is either not signed or the signature does not match.</para> - /// <para> k_ECheckFileSignatureValidSignature - The file is signed and the signature is valid.</para> - /// </summary> - public static SteamAPICall_t CheckFileSignature(string szFileName) { - InteropHelp.TestIfAvailableClient(); - using (var szFileName2 = new InteropHelp.UTF8StringHandle(szFileName)) { - return (SteamAPICall_t)NativeMethods.ISteamUtils_CheckFileSignature(CSteamAPIContext.GetSteamUtils(), szFileName2); - } - } - - /// <summary> - /// <para> Activates the full-screen text input dialog which takes a initial text string and returns the text the user has typed</para> - /// </summary> - public static bool ShowGamepadTextInput(EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText) { - InteropHelp.TestIfAvailableClient(); - using (var pchDescription2 = new InteropHelp.UTF8StringHandle(pchDescription)) - using (var pchExistingText2 = new InteropHelp.UTF8StringHandle(pchExistingText)) { - return NativeMethods.ISteamUtils_ShowGamepadTextInput(CSteamAPIContext.GetSteamUtils(), eInputMode, eLineInputMode, pchDescription2, unCharMax, pchExistingText2); - } - } - - /// <summary> - /// <para> Returns previously entered text & length</para> - /// </summary> - public static uint GetEnteredGamepadTextLength() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_GetEnteredGamepadTextLength(CSteamAPIContext.GetSteamUtils()); - } - - public static bool GetEnteredGamepadTextInput(out string pchText, uint cchText) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchText2 = Marshal.AllocHGlobal((int)cchText); - bool ret = NativeMethods.ISteamUtils_GetEnteredGamepadTextInput(CSteamAPIContext.GetSteamUtils(), pchText2, cchText); - pchText = ret ? InteropHelp.PtrToStringUTF8(pchText2) : null; - Marshal.FreeHGlobal(pchText2); - return ret; - } - - /// <summary> - /// <para> returns the language the steam client is running in, you probably want ISteamApps::GetCurrentGameLanguage instead, this is for very special usage cases</para> - /// </summary> - public static string GetSteamUILanguage() { - InteropHelp.TestIfAvailableClient(); - return InteropHelp.PtrToStringUTF8(NativeMethods.ISteamUtils_GetSteamUILanguage(CSteamAPIContext.GetSteamUtils())); - } - - /// <summary> - /// <para> returns true if Steam itself is running in VR mode</para> - /// </summary> - public static bool IsSteamRunningInVR() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_IsSteamRunningInVR(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition.</para> - /// </summary> - public static void SetOverlayNotificationInset(int nHorizontalInset, int nVerticalInset) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUtils_SetOverlayNotificationInset(CSteamAPIContext.GetSteamUtils(), nHorizontalInset, nVerticalInset); - } - - /// <summary> - /// <para> returns true if Steam & the Steam Overlay are running in Big Picture mode</para> - /// <para> Games much be launched through the Steam client to enable the Big Picture overlay. During development,</para> - /// <para> a game can be added as a non-steam game to the developers library to test this feature</para> - /// </summary> - public static bool IsSteamInBigPictureMode() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_IsSteamInBigPictureMode(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> ask SteamUI to create and render its OpenVR dashboard</para> - /// </summary> - public static void StartVRDashboard() { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUtils_StartVRDashboard(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Returns true if the HMD content will be streamed via Steam Remote Play</para> - /// </summary> - public static bool IsVRHeadsetStreamingEnabled() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_IsVRHeadsetStreamingEnabled(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Set whether the HMD content will be streamed via Steam Remote Play</para> - /// <para> If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed.</para> - /// <para> If this is set to false, then the application window will be streamed instead, and remote input will be allowed.</para> - /// <para> The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game.</para> - /// <para> (this is useful for games that have asymmetric multiplayer gameplay)</para> - /// </summary> - public static void SetVRHeadsetStreamingEnabled(bool bEnabled) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUtils_SetVRHeadsetStreamingEnabled(CSteamAPIContext.GetSteamUtils(), bEnabled); - } - - /// <summary> - /// <para> Returns whether this steam client is a Steam China specific client, vs the global client.</para> - /// </summary> - public static bool IsSteamChinaLauncher() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_IsSteamChinaLauncher(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Initializes text filtering, loading dictionaries for the language the game is running in.</para> - /// <para> unFilterOptions are reserved for future use and should be set to 0</para> - /// <para> Returns false if filtering is unavailable for the game's language, in which case FilterText() will act as a passthrough.</para> - /// <para> Users can customize the text filter behavior in their Steam Account preferences:</para> - /// <para> https://store.steampowered.com/account/preferences#CommunityContentPreferences</para> - /// </summary> - public static bool InitFilterText(uint unFilterOptions = 0) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_InitFilterText(CSteamAPIContext.GetSteamUtils(), unFilterOptions); - } - - /// <summary> - /// <para> Filters the provided input message and places the filtered result into pchOutFilteredText, using legally required filtering and additional filtering based on the context and user settings</para> - /// <para> eContext is the type of content in the input string</para> - /// <para> sourceSteamID is the Steam ID that is the source of the input string (e.g. the player with the name, or who said the chat text)</para> - /// <para> pchInputText is the input string that should be filtered, which can be ASCII or UTF-8</para> - /// <para> pchOutFilteredText is where the output will be placed, even if no filtering is performed</para> - /// <para> nByteSizeOutFilteredText is the size (in bytes) of pchOutFilteredText, should be at least strlen(pchInputText)+1</para> - /// <para> Returns the number of characters (not bytes) filtered</para> - /// </summary> - public static int FilterText(ETextFilteringContext eContext, CSteamID sourceSteamID, string pchInputMessage, out string pchOutFilteredText, uint nByteSizeOutFilteredText) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchOutFilteredText2 = Marshal.AllocHGlobal((int)nByteSizeOutFilteredText); - using (var pchInputMessage2 = new InteropHelp.UTF8StringHandle(pchInputMessage)) { - int ret = NativeMethods.ISteamUtils_FilterText(CSteamAPIContext.GetSteamUtils(), eContext, sourceSteamID, pchInputMessage2, pchOutFilteredText2, nByteSizeOutFilteredText); - pchOutFilteredText = ret != -1 ? InteropHelp.PtrToStringUTF8(pchOutFilteredText2) : null; - Marshal.FreeHGlobal(pchOutFilteredText2); - return ret; - } - } - - /// <summary> - /// <para> Return what we believe your current ipv6 connectivity to "the internet" is on the specified protocol.</para> - /// <para> This does NOT tell you if the Steam client is currently connected to Steam via ipv6.</para> - /// </summary> - public static ESteamIPv6ConnectivityState GetIPv6ConnectivityState(ESteamIPv6ConnectivityProtocol eProtocol) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_GetIPv6ConnectivityState(CSteamAPIContext.GetSteamUtils(), eProtocol); - } - - /// <summary> - /// <para> returns true if currently running on the Steam Deck device</para> - /// </summary> - public static bool IsSteamRunningOnSteamDeck() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_IsSteamRunningOnSteamDeck(CSteamAPIContext.GetSteamUtils()); - } - - /// <summary> - /// <para> Opens a floating keyboard over the game content and sends OS keyboard keys directly to the game.</para> - /// <para> The text field position is specified in pixels relative the origin of the game window and is used to position the floating keyboard in a way that doesn't cover the text field</para> - /// </summary> - public static bool ShowFloatingGamepadTextInput(EFloatingGamepadTextInputMode eKeyboardMode, int nTextFieldXPosition, int nTextFieldYPosition, int nTextFieldWidth, int nTextFieldHeight) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_ShowFloatingGamepadTextInput(CSteamAPIContext.GetSteamUtils(), eKeyboardMode, nTextFieldXPosition, nTextFieldYPosition, nTextFieldWidth, nTextFieldHeight); - } - - /// <summary> - /// <para> In game launchers that don't have controller support you can call this to have Steam Input translate the controller input into mouse/kb to navigate the launcher</para> - /// </summary> - public static void SetGameLauncherMode(bool bLauncherMode) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamUtils_SetGameLauncherMode(CSteamAPIContext.GetSteamUtils(), bLauncherMode); - } - - /// <summary> - /// <para> Dismisses the floating keyboard.</para> - /// </summary> - public static bool DismissFloatingGamepadTextInput() { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamUtils_DismissFloatingGamepadTextInput(CSteamAPIContext.GetSteamUtils()); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamutils.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamutils.cs.meta deleted file mode 100644 index 52ae12a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamutils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d33733b93da525840ba9be149aae03cb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamvideo.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamvideo.cs deleted file mode 100644 index 451a6c1..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamvideo.cs +++ /dev/null @@ -1,54 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - public static class SteamVideo { - /// <summary> - /// <para> Get a URL suitable for streaming the given Video app ID's video</para> - /// </summary> - public static void GetVideoURL(AppId_t unVideoAppID) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamVideo_GetVideoURL(CSteamAPIContext.GetSteamVideo(), unVideoAppID); - } - - /// <summary> - /// <para> returns true if user is uploading a live broadcast</para> - /// </summary> - public static bool IsBroadcasting(out int pnNumViewers) { - InteropHelp.TestIfAvailableClient(); - return NativeMethods.ISteamVideo_IsBroadcasting(CSteamAPIContext.GetSteamVideo(), out pnNumViewers); - } - - /// <summary> - /// <para> Get the OPF Details for 360 Video Playback</para> - /// </summary> - public static void GetOPFSettings(AppId_t unVideoAppID) { - InteropHelp.TestIfAvailableClient(); - NativeMethods.ISteamVideo_GetOPFSettings(CSteamAPIContext.GetSteamVideo(), unVideoAppID); - } - - public static bool GetOPFStringForApp(AppId_t unVideoAppID, out string pchBuffer, ref int pnBufferSize) { - InteropHelp.TestIfAvailableClient(); - IntPtr pchBuffer2 = Marshal.AllocHGlobal((int)pnBufferSize); - bool ret = NativeMethods.ISteamVideo_GetOPFStringForApp(CSteamAPIContext.GetSteamVideo(), unVideoAppID, pchBuffer2, ref pnBufferSize); - pchBuffer = ret ? InteropHelp.PtrToStringUTF8(pchBuffer2) : null; - Marshal.FreeHGlobal(pchBuffer2); - return ret; - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamvideo.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamvideo.cs.meta deleted file mode 100644 index 12e5f5a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/autogen/isteamvideo.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1f702c2a8bafa974794196681323eccf -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/com.rlabrecque.steamworks.net.asmdef b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/com.rlabrecque.steamworks.net.asmdef deleted file mode 100644 index 2692f32..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/com.rlabrecque.steamworks.net.asmdef +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "com.rlabrecque.steamworks.net", - "rootNamespace": "", - "references": [], - "includePlatforms": [ - "Editor", - "LinuxStandalone64", - "macOSStandalone", - "WindowsStandalone32", - "WindowsStandalone64" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": true, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -}
\ No newline at end of file diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/com.rlabrecque.steamworks.net.asmdef.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/com.rlabrecque.steamworks.net.asmdef.meta deleted file mode 100644 index 0106b1d..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/com.rlabrecque.steamworks.net.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 68bd7fdb68ef2684e982e8a9825b18a5 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types.meta deleted file mode 100644 index d0eee01..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3d7506b9f621a5348b763eb9c2bd92bc -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes.meta deleted file mode 100644 index 0ebcf26..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 48b4fdd7ddbfb9c47914ec93dea90b67 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes/gameserveritem_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes/gameserveritem_t.cs deleted file mode 100644 index b9b2e40..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes/gameserveritem_t.cs +++ /dev/null @@ -1,106 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -using System.Text; - -namespace Steamworks { - //----------------------------------------------------------------------------- - // Purpose: Data describing a single server - //----------------------------------------------------------------------------- - [StructLayout(LayoutKind.Sequential, Size = 372, Pack = 4)] - [System.Serializable] - public class gameserveritem_t { - public string GetGameDir() { - return Encoding.UTF8.GetString(m_szGameDir, 0, System.Array.IndexOf<byte>(m_szGameDir, 0)); - } - - public void SetGameDir(string dir) { - m_szGameDir = Encoding.UTF8.GetBytes(dir + '\0'); - } - - public string GetMap() { - return Encoding.UTF8.GetString(m_szMap, 0, System.Array.IndexOf<byte>(m_szMap, 0)); - } - - public void SetMap(string map) { - m_szMap = Encoding.UTF8.GetBytes(map + '\0'); - } - - public string GetGameDescription() { - return Encoding.UTF8.GetString(m_szGameDescription, 0, System.Array.IndexOf<byte>(m_szGameDescription, 0)); - } - - public void SetGameDescription(string desc) { - m_szGameDescription = Encoding.UTF8.GetBytes(desc + '\0'); - } - - public string GetServerName() { - // Use the IP address as the name if nothing is set yet. - if (m_szServerName[0] == 0) - return m_NetAdr.GetConnectionAddressString(); - else - return Encoding.UTF8.GetString(m_szServerName, 0, System.Array.IndexOf<byte>(m_szServerName, 0)); - } - - public void SetServerName(string name) { - m_szServerName = Encoding.UTF8.GetBytes(name + '\0'); - } - - public string GetGameTags() { - return Encoding.UTF8.GetString(m_szGameTags, 0, System.Array.IndexOf<byte>(m_szGameTags, 0)); - } - - public void SetGameTags(string tags) { - m_szGameTags = Encoding.UTF8.GetBytes(tags + '\0'); - } - - public servernetadr_t m_NetAdr; ///< IP/Query Port/Connection Port for this server - public int m_nPing; ///< current ping time in milliseconds - [MarshalAs(UnmanagedType.I1)] - public bool m_bHadSuccessfulResponse; ///< server has responded successfully in the past - [MarshalAs(UnmanagedType.I1)] - public bool m_bDoNotRefresh; ///< server is marked as not responding and should no longer be refreshed - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cbMaxGameServerGameDir)] - private byte[] m_szGameDir; ///< current game directory - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cbMaxGameServerMapName)] - private byte[] m_szMap; ///< current map - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cbMaxGameServerGameDescription)] - private byte[] m_szGameDescription; ///< game description - public uint m_nAppID; ///< Steam App ID of this server - public int m_nPlayers; ///< total number of players currently on the server. INCLUDES BOTS!! - public int m_nMaxPlayers; ///< Maximum players that can join this server - public int m_nBotPlayers; ///< Number of bots (i.e simulated players) on this server - [MarshalAs(UnmanagedType.I1)] - public bool m_bPassword; ///< true if this server needs a password to join - [MarshalAs(UnmanagedType.I1)] - public bool m_bSecure; ///< Is this server protected by VAC - public uint m_ulTimeLastPlayed; ///< time (in unix time) when this server was last played on (for favorite/history servers) - public int m_nServerVersion; ///< server version as reported to Steam - - // Game server name - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cbMaxGameServerName)] - private byte[] m_szServerName; - - // the tags this server exposes - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cbMaxGameServerTags)] - private byte[] m_szGameTags; - - // steamID of the game server - invalid if it's doesn't have one (old server, or not connected to Steam) - public CSteamID m_steamID; - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes/gameserveritem_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes/gameserveritem_t.cs.meta deleted file mode 100644 index 5723447..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes/gameserveritem_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7cb77ebece51f6c4ca56e4fb79a2767a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes/servernetadr_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes/servernetadr_t.cs deleted file mode 100644 index 66f555d..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes/servernetadr_t.cs +++ /dev/null @@ -1,116 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - // servernetadr_t is all the addressing info the serverbrowser needs to know about a game server, - // namely: its IP, its connection port, and its query port. - [System.Serializable] - public struct servernetadr_t { - private ushort m_usConnectionPort; // (in HOST byte order) - private ushort m_usQueryPort; - private uint m_unIP; - - public void Init(uint ip, ushort usQueryPort, ushort usConnectionPort) { - m_unIP = ip; - m_usQueryPort = usQueryPort; - m_usConnectionPort = usConnectionPort; - } - -#if NETADR_H - public netadr_t GetIPAndQueryPort() { - return netadr_t( m_unIP, m_usQueryPort ); - } -#endif - - // Access the query port. - public ushort GetQueryPort() { - return m_usQueryPort; - } - - public void SetQueryPort(ushort usPort) { - m_usQueryPort = usPort; - } - - // Access the connection port. - public ushort GetConnectionPort() { - return m_usConnectionPort; - } - - public void SetConnectionPort(ushort usPort) { - m_usConnectionPort = usPort; - } - - // Access the IP - public uint GetIP() { - return m_unIP; - } - - public void SetIP(uint unIP) { - m_unIP = unIP; - } - - // This gets the 'a.b.c.d:port' string with the connection port (instead of the query port). - public string GetConnectionAddressString() { - return ToString(m_unIP, m_usConnectionPort); - } - - public string GetQueryAddressString() { - return ToString(m_unIP, m_usQueryPort); - } - - public static string ToString(uint unIP, ushort usPort) { -#if VALVE_BIG_ENDIAN - return string.Format("{0}.{1}.{2}.{3}:{4}", unIP & 0xFFul, (unIP >> 8) & 0xFFul, (unIP >> 16) & 0xFFul, (unIP >> 24) & 0xFFul, usPort); -#else - return string.Format("{0}.{1}.{2}.{3}:{4}", (unIP >> 24) & 0xFFul, (unIP >> 16) & 0xFFul, (unIP >> 8) & 0xFFul, unIP & 0xFFul, usPort); -#endif - } - - public static bool operator <(servernetadr_t x, servernetadr_t y) { - return (x.m_unIP < y.m_unIP) || (x.m_unIP == y.m_unIP && x.m_usQueryPort < y.m_usQueryPort); - } - - public static bool operator >(servernetadr_t x, servernetadr_t y) { - return (x.m_unIP > y.m_unIP) || (x.m_unIP == y.m_unIP && x.m_usQueryPort > y.m_usQueryPort); - } - - public override bool Equals(object other) { - return other is servernetadr_t && this == (servernetadr_t)other; - } - - public override int GetHashCode() { - return m_unIP.GetHashCode() + m_usQueryPort.GetHashCode() + m_usConnectionPort.GetHashCode(); - } - - public static bool operator ==(servernetadr_t x, servernetadr_t y) { - return (x.m_unIP == y.m_unIP) && (x.m_usQueryPort == y.m_usQueryPort) && (x.m_usConnectionPort == y.m_usConnectionPort); - } - - public static bool operator !=(servernetadr_t x, servernetadr_t y) { - return !(x == y); - } - - public bool Equals(servernetadr_t other) { - return (m_unIP == other.m_unIP) && (m_usQueryPort == other.m_usQueryPort) && (m_usConnectionPort == other.m_usConnectionPort); - } - - public int CompareTo(servernetadr_t other) { - return m_unIP.CompareTo(other.m_unIP) + m_usQueryPort.CompareTo(other.m_usQueryPort) + m_usConnectionPort.CompareTo(other.m_usConnectionPort); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes/servernetadr_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes/servernetadr_t.cs.meta deleted file mode 100644 index 51d247f..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/MatchmakingTypes/servernetadr_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 543f6ec65c2a352408c8e28d4f0b3cbc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient.meta deleted file mode 100644 index ada6785..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 660090ac78ff49a4caa3154940c83333 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient/SteamAPIWarningMessageHook_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient/SteamAPIWarningMessageHook_t.cs deleted file mode 100644 index 832d1a2..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient/SteamAPIWarningMessageHook_t.cs +++ /dev/null @@ -1,22 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Runtime.InteropServices.UnmanagedFunctionPointer(System.Runtime.InteropServices.CallingConvention.Cdecl)] - public delegate void SteamAPIWarningMessageHook_t(int nSeverity, System.Text.StringBuilder pchDebugText); -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient/SteamAPIWarningMessageHook_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient/SteamAPIWarningMessageHook_t.cs.meta deleted file mode 100644 index db40181..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient/SteamAPIWarningMessageHook_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c98e0ee75c73f444abb8ace148379c6e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient/SteamAPI_CheckCallbackRegistered_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient/SteamAPI_CheckCallbackRegistered_t.cs deleted file mode 100644 index a7ed915..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient/SteamAPI_CheckCallbackRegistered_t.cs +++ /dev/null @@ -1,22 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Runtime.InteropServices.UnmanagedFunctionPointer(System.Runtime.InteropServices.CallingConvention.StdCall)] // TODO: This is probably wrong, will likely crash on some platform. - public delegate void SteamAPI_CheckCallbackRegistered_t(int iCallbackNum); -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient/SteamAPI_CheckCallbackRegistered_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient/SteamAPI_CheckCallbackRegistered_t.cs.meta deleted file mode 100644 index 3739991..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClient/SteamAPI_CheckCallbackRegistered_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 89d1afa2baf7a77459997121dfb8e872 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic.meta deleted file mode 100644 index e7908e1..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7a1f79686d425ae4e9380256e58f4b56 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/CGameID.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/CGameID.cs deleted file mode 100644 index 689a0e2..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/CGameID.cs +++ /dev/null @@ -1,154 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct CGameID : System.IEquatable<CGameID>, System.IComparable<CGameID> { - public ulong m_GameID; - - public enum EGameIDType { - k_EGameIDTypeApp = 0, - k_EGameIDTypeGameMod = 1, - k_EGameIDTypeShortcut = 2, - k_EGameIDTypeP2P = 3, - }; - - public CGameID(ulong GameID) { - m_GameID = GameID; - } - - public CGameID(AppId_t nAppID) { - m_GameID = 0; - SetAppID(nAppID); - } - - public CGameID(AppId_t nAppID, uint nModID) { - m_GameID = 0; - SetAppID(nAppID); - SetType(EGameIDType.k_EGameIDTypeGameMod); - SetModID(nModID); - } - - public bool IsSteamApp() { - return Type() == EGameIDType.k_EGameIDTypeApp; - } - - public bool IsMod() { - return Type() == EGameIDType.k_EGameIDTypeGameMod; - } - - public bool IsShortcut() { - return Type() == EGameIDType.k_EGameIDTypeShortcut; - } - - public bool IsP2PFile() { - return Type() == EGameIDType.k_EGameIDTypeP2P; - } - - public AppId_t AppID() { - return new AppId_t((uint)(m_GameID & 0xFFFFFFul)); - } - - public EGameIDType Type() { - return (EGameIDType)((m_GameID >> 24) & 0xFFul); - } - - public uint ModID() { - return (uint)((m_GameID >> 32) & 0xFFFFFFFFul); - } - - public bool IsValid() { - // Each type has it's own invalid fixed point: - switch (Type()) { - case EGameIDType.k_EGameIDTypeApp: - return AppID() != AppId_t.Invalid; - - case EGameIDType.k_EGameIDTypeGameMod: - return AppID() != AppId_t.Invalid && (ModID() & 0x80000000) != 0; - - case EGameIDType.k_EGameIDTypeShortcut: - return (ModID() & 0x80000000) != 0; - - case EGameIDType.k_EGameIDTypeP2P: - return AppID() == AppId_t.Invalid && (ModID() & 0x80000000) != 0; - - default: - return false; - } - } - - public void Reset() { - m_GameID = 0; - } - - public void Set(ulong GameID) { - m_GameID = GameID; - } - - #region Private Setters for internal use - private void SetAppID(AppId_t other) { - m_GameID = (m_GameID & ~(0xFFFFFFul << (ushort)0)) | (((ulong)(other) & 0xFFFFFFul) << (ushort)0); - } - - private void SetType(EGameIDType other) { - m_GameID = (m_GameID & ~(0xFFul << (ushort)24)) | (((ulong)(other) & 0xFFul) << (ushort)24); - } - - private void SetModID(uint other) { - m_GameID = (m_GameID & ~(0xFFFFFFFFul << (ushort)32)) | (((ulong)(other) & 0xFFFFFFFFul) << (ushort)32); - } - #endregion - - #region Overrides - public override string ToString() { - return m_GameID.ToString(); - } - - public override bool Equals(object other) { - return other is CGameID && this == (CGameID)other; - } - - public override int GetHashCode() { - return m_GameID.GetHashCode(); - } - - public static bool operator ==(CGameID x, CGameID y) { - return x.m_GameID == y.m_GameID; - } - - public static bool operator !=(CGameID x, CGameID y) { - return !(x == y); - } - - public static explicit operator CGameID(ulong value) { - return new CGameID(value); - } - public static explicit operator ulong(CGameID that) { - return that.m_GameID; - } - - public bool Equals(CGameID other) { - return m_GameID == other.m_GameID; - } - - public int CompareTo(CGameID other) { - return m_GameID.CompareTo(other.m_GameID); - } - #endregion - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/CGameID.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/CGameID.cs.meta deleted file mode 100644 index 280ba90..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/CGameID.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e32604c61cbc4a843873d96c61d7c673 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/CSteamID.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/CSteamID.cs deleted file mode 100644 index 3e4a1b1..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/CSteamID.cs +++ /dev/null @@ -1,269 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - [System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 4)] - public struct CSteamID : System.IEquatable<CSteamID>, System.IComparable<CSteamID> { - public static readonly CSteamID Nil = new CSteamID(); - public static readonly CSteamID OutofDateGS = new CSteamID(new AccountID_t(0), 0, EUniverse.k_EUniverseInvalid, EAccountType.k_EAccountTypeInvalid); - public static readonly CSteamID LanModeGS = new CSteamID(new AccountID_t(0), 0, EUniverse.k_EUniversePublic, EAccountType.k_EAccountTypeInvalid); - public static readonly CSteamID NotInitYetGS = new CSteamID(new AccountID_t(1), 0, EUniverse.k_EUniverseInvalid, EAccountType.k_EAccountTypeInvalid); - public static readonly CSteamID NonSteamGS = new CSteamID(new AccountID_t(2), 0, EUniverse.k_EUniverseInvalid, EAccountType.k_EAccountTypeInvalid); - public ulong m_SteamID; - - public CSteamID(AccountID_t unAccountID, EUniverse eUniverse, EAccountType eAccountType) { - m_SteamID = 0; - Set(unAccountID, eUniverse, eAccountType); - } - - public CSteamID(AccountID_t unAccountID, uint unAccountInstance, EUniverse eUniverse, EAccountType eAccountType) { - m_SteamID = 0; -#if _SERVER && Assert - Assert( ! ( ( EAccountType.k_EAccountTypeIndividual == eAccountType ) && ( unAccountInstance > k_unSteamUserWebInstance ) ) ); // enforce that for individual accounts, instance is always 1 -#endif // _SERVER - InstancedSet(unAccountID, unAccountInstance, eUniverse, eAccountType); - } - - public CSteamID(ulong ulSteamID) { - m_SteamID = ulSteamID; - } - - public void Set(AccountID_t unAccountID, EUniverse eUniverse, EAccountType eAccountType) { - SetAccountID(unAccountID); - SetEUniverse(eUniverse); - SetEAccountType(eAccountType); - - if (eAccountType == EAccountType.k_EAccountTypeClan || eAccountType == EAccountType.k_EAccountTypeGameServer) { - SetAccountInstance(0); - } - else { - SetAccountInstance(Constants.k_unSteamUserDefaultInstance); - } - } - - public void InstancedSet(AccountID_t unAccountID, uint unInstance, EUniverse eUniverse, EAccountType eAccountType) { - SetAccountID(unAccountID); - SetEUniverse(eUniverse); - SetEAccountType(eAccountType); - SetAccountInstance(unInstance); - } - - public void Clear() { - m_SteamID = 0; - } - - public void CreateBlankAnonLogon(EUniverse eUniverse) { - SetAccountID(new AccountID_t(0)); - SetEUniverse(eUniverse); - SetEAccountType(EAccountType.k_EAccountTypeAnonGameServer); - SetAccountInstance(0); - } - - public void CreateBlankAnonUserLogon(EUniverse eUniverse) { - SetAccountID(new AccountID_t(0)); - SetEUniverse(eUniverse); - SetEAccountType(EAccountType.k_EAccountTypeAnonUser); - SetAccountInstance(0); - } - - //----------------------------------------------------------------------------- - // Purpose: Is this an anonymous game server login that will be filled in? - //----------------------------------------------------------------------------- - public bool BBlankAnonAccount() { - return GetAccountID() == new AccountID_t(0) && BAnonAccount() && GetUnAccountInstance() == 0; - } - - //----------------------------------------------------------------------------- - // Purpose: Is this a game server account id? (Either persistent or anonymous) - //----------------------------------------------------------------------------- - public bool BGameServerAccount() { - return GetEAccountType() == EAccountType.k_EAccountTypeGameServer || GetEAccountType() == EAccountType.k_EAccountTypeAnonGameServer; - } - - //----------------------------------------------------------------------------- - // Purpose: Is this a persistent (not anonymous) game server account id? - //----------------------------------------------------------------------------- - public bool BPersistentGameServerAccount() { - return GetEAccountType() == EAccountType.k_EAccountTypeGameServer; - } - - //----------------------------------------------------------------------------- - // Purpose: Is this an anonymous game server account id? - //----------------------------------------------------------------------------- - public bool BAnonGameServerAccount() { - return GetEAccountType() == EAccountType.k_EAccountTypeAnonGameServer; - } - - //----------------------------------------------------------------------------- - // Purpose: Is this a content server account id? - //----------------------------------------------------------------------------- - public bool BContentServerAccount() { - return GetEAccountType() == EAccountType.k_EAccountTypeContentServer; - } - - - //----------------------------------------------------------------------------- - // Purpose: Is this a clan account id? - //----------------------------------------------------------------------------- - public bool BClanAccount() { - return GetEAccountType() == EAccountType.k_EAccountTypeClan; - } - - - //----------------------------------------------------------------------------- - // Purpose: Is this a chat account id? - //----------------------------------------------------------------------------- - public bool BChatAccount() { - return GetEAccountType() == EAccountType.k_EAccountTypeChat; - } - - //----------------------------------------------------------------------------- - // Purpose: Is this a chat account id? - //----------------------------------------------------------------------------- - public bool IsLobby() { - return (GetEAccountType() == EAccountType.k_EAccountTypeChat) - && (GetUnAccountInstance() & (int)EChatSteamIDInstanceFlags.k_EChatInstanceFlagLobby) != 0; - } - - - //----------------------------------------------------------------------------- - // Purpose: Is this an individual user account id? - //----------------------------------------------------------------------------- - public bool BIndividualAccount() { - return GetEAccountType() == EAccountType.k_EAccountTypeIndividual || GetEAccountType() == EAccountType.k_EAccountTypeConsoleUser; - } - - - //----------------------------------------------------------------------------- - // Purpose: Is this an anonymous account? - //----------------------------------------------------------------------------- - public bool BAnonAccount() { - return GetEAccountType() == EAccountType.k_EAccountTypeAnonUser || GetEAccountType() == EAccountType.k_EAccountTypeAnonGameServer; - } - - //----------------------------------------------------------------------------- - // Purpose: Is this an anonymous user account? ( used to create an account or reset a password ) - //----------------------------------------------------------------------------- - public bool BAnonUserAccount() { - return GetEAccountType() == EAccountType.k_EAccountTypeAnonUser; - } - - //----------------------------------------------------------------------------- - // Purpose: Is this a faked up Steam ID for a PSN friend account? - //----------------------------------------------------------------------------- - public bool BConsoleUserAccount() { - return GetEAccountType() == EAccountType.k_EAccountTypeConsoleUser; - } - - public void SetAccountID(AccountID_t other) { - m_SteamID = (m_SteamID & ~(0xFFFFFFFFul << (ushort)0)) | (((ulong)(other) & 0xFFFFFFFFul) << (ushort)0); - } - - public void SetAccountInstance(uint other) { - m_SteamID = (m_SteamID & ~(0xFFFFFul << (ushort)32)) | (((ulong)(other) & 0xFFFFFul) << (ushort)32); - } - - // This is a non standard/custom function not found in C++ Steamworks - public void SetEAccountType(EAccountType other) { - m_SteamID = (m_SteamID & ~(0xFul << (ushort)52)) | (((ulong)(other) & 0xFul) << (ushort)52); - } - - public void SetEUniverse(EUniverse other) { - m_SteamID = (m_SteamID & ~(0xFFul << (ushort)56)) | (((ulong)(other) & 0xFFul) << (ushort)56); - } - - public AccountID_t GetAccountID() { - return new AccountID_t((uint)(m_SteamID & 0xFFFFFFFFul)); - } - - public uint GetUnAccountInstance() { - return (uint)((m_SteamID >> 32) & 0xFFFFFul); - } - - public EAccountType GetEAccountType() { - return (EAccountType)((m_SteamID >> 52) & 0xFul); - } - - public EUniverse GetEUniverse() { - return (EUniverse)((m_SteamID >> 56) & 0xFFul); - } - - public bool IsValid() { - if (GetEAccountType() <= EAccountType.k_EAccountTypeInvalid || GetEAccountType() >= EAccountType.k_EAccountTypeMax) - return false; - - if (GetEUniverse() <= EUniverse.k_EUniverseInvalid || GetEUniverse() >= EUniverse.k_EUniverseMax) - return false; - - if (GetEAccountType() == EAccountType.k_EAccountTypeIndividual) { - if (GetAccountID() == new AccountID_t(0) || GetUnAccountInstance() > Constants.k_unSteamUserDefaultInstance) - return false; - } - - if (GetEAccountType() == EAccountType.k_EAccountTypeClan) { - if (GetAccountID() == new AccountID_t(0) || GetUnAccountInstance() != 0) - return false; - } - - if (GetEAccountType() == EAccountType.k_EAccountTypeGameServer) { - if (GetAccountID() == new AccountID_t(0)) - return false; - // Any limit on instances? We use them for local users and bots - } - return true; - } - - #region Overrides - public override string ToString() { - return m_SteamID.ToString(); - } - - public override bool Equals(object other) { - return other is CSteamID && this == (CSteamID)other; - } - - public override int GetHashCode() { - return m_SteamID.GetHashCode(); - } - - public static bool operator ==(CSteamID x, CSteamID y) { - return x.m_SteamID == y.m_SteamID; - } - - public static bool operator !=(CSteamID x, CSteamID y) { - return !(x == y); - } - - public static explicit operator CSteamID(ulong value) { - return new CSteamID(value); - } - public static explicit operator ulong(CSteamID that) { - return that.m_SteamID; - } - - public bool Equals(CSteamID other) { - return m_SteamID == other.m_SteamID; - } - - public int CompareTo(CSteamID other) { - return m_SteamID.CompareTo(other.m_SteamID); - } - #endregion - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/CSteamID.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/CSteamID.cs.meta deleted file mode 100644 index 385f77f..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/CSteamID.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ceefc77ec6409724c9c766ce839f8ef7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/HAuthTicket.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/HAuthTicket.cs deleted file mode 100644 index f395589..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/HAuthTicket.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct HAuthTicket : System.IEquatable<HAuthTicket>, System.IComparable<HAuthTicket> { - public static readonly HAuthTicket Invalid = new HAuthTicket(0); - public uint m_HAuthTicket; - - public HAuthTicket(uint value) { - m_HAuthTicket = value; - } - - public override string ToString() { - return m_HAuthTicket.ToString(); - } - - public override bool Equals(object other) { - return other is HAuthTicket && this == (HAuthTicket)other; - } - - public override int GetHashCode() { - return m_HAuthTicket.GetHashCode(); - } - - public static bool operator ==(HAuthTicket x, HAuthTicket y) { - return x.m_HAuthTicket == y.m_HAuthTicket; - } - - public static bool operator !=(HAuthTicket x, HAuthTicket y) { - return !(x == y); - } - - public static explicit operator HAuthTicket(uint value) { - return new HAuthTicket(value); - } - - public static explicit operator uint(HAuthTicket that) { - return that.m_HAuthTicket; - } - - public bool Equals(HAuthTicket other) { - return m_HAuthTicket == other.m_HAuthTicket; - } - - public int CompareTo(HAuthTicket other) { - return m_HAuthTicket.CompareTo(other.m_HAuthTicket); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/HAuthTicket.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/HAuthTicket.cs.meta deleted file mode 100644 index 5bbc927..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamClientPublic/HAuthTicket.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 15820f55fe73cd74e9a944843ff7e2a6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets.meta deleted file mode 100644 index 47b2408..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d5b00c2194afdc241825fc97bb39480b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets/SteamDatagramHostedAddress.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets/SteamDatagramHostedAddress.cs deleted file mode 100644 index 95bebfe..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets/SteamDatagramHostedAddress.cs +++ /dev/null @@ -1,44 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks -{ - /// Network-routable identifier for a service. This is an intentionally - /// opaque byte blob. The relays know how to use this to forward it on - /// to the intended destination, but otherwise clients really should not - /// need to know what's inside. (Indeed, we don't really want them to - /// know, as it could reveal information useful to an attacker.) - [System.Serializable] - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct SteamDatagramHostedAddress - { - // Size of data blob. - public int m_cbSize; - - // Opaque - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] - public byte[] m_data; - - // Reset to empty state - public void Clear() - { - m_cbSize = 0; - m_data = new byte[128]; - } - } -} - -#endif // !DISABLESTEAMWORKS
\ No newline at end of file diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets/SteamDatagramHostedAddress.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets/SteamDatagramHostedAddress.cs.meta deleted file mode 100644 index dd30dfe..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets/SteamDatagramHostedAddress.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b4b911b6f317d4b4dbc03443afe5f5b6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets/SteamDatagramRelayAuthTicket.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets/SteamDatagramRelayAuthTicket.cs deleted file mode 100644 index 88b8885..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets/SteamDatagramRelayAuthTicket.cs +++ /dev/null @@ -1,144 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks -{ - /// Network-routable identifier for a service. This is an intentionally - /// opaque byte blob. The relays know how to use this to forward it on - /// to the intended destination, but otherwise clients really should not - /// need to know what's inside. (Indeed, we don't really want them to - /// know, as it could reveal information useful to an attacker.) - [System.Serializable] - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - public struct SteamDatagramRelayAuthTicket - { - /// Identity of the gameserver we want to talk to. This is required. - SteamNetworkingIdentity m_identityGameserver; - - /// Identity of the person who was authorized. This is required. - SteamNetworkingIdentity m_identityAuthorizedClient; - - /// SteamID is authorized to send from a particular public IP. If this - /// is 0, then the sender is not restricted to a particular IP. - /// - /// Recommend to leave this set to zero. - uint m_unPublicIP; - - /// Time when the ticket expires. Recommended: take the current - /// time and add 6 hours, or maybe a bit longer if your gameplay - /// sessions are longer. - /// - /// NOTE: relays may reject tickets with expiry times excessively - /// far in the future, so contact us if you wish to use an expiry - /// longer than, say, 24 hours. - RTime32 m_rtimeTicketExpiry; - - /// Routing information where the gameserver is listening for - /// relayed traffic. You should fill this in when generating - /// a ticket. - /// - /// When generating tickets on your backend: - /// - In production: The gameserver knows the proper routing - /// information, so you need to call - /// ISteamNetworkingSockets::GetHostedDedicatedServerAddress - /// and send the info to your backend. - /// - In development, you will need to provide public IP - /// of the server using SteamDatagramServiceNetID::SetDevAddress. - /// Relays need to be able to send UDP - /// packets to this server. Since it's very likely that - /// your server is behind a firewall/NAT, make sure that - /// the address is the one that the outside world can use. - /// The traffic from the relays will be "unsolicited", so - /// stateful firewalls won't work -- you will probably have - /// to set up an explicit port forward. - /// On the client: - /// - this field will always be blank. - SteamDatagramHostedAddress m_routing; - - /// App ID this is for. This is required, and should be the - /// App ID the client is running. (Even if your gameserver - /// uses a different App ID.) - uint m_nAppID; - - /// Restrict this ticket to be used for a particular virtual port? - /// Set to -1 to allow any virtual port. - /// - /// This is useful as a security measure, and also so the client will - /// use the right ticket (which might have extra fields that are useful - /// for proper analytics), if the client happens to have more than one - /// appropriate ticket. - /// - /// Note: if a client has more that one acceptable ticket, they will - /// always use the one expiring the latest. - int m_nRestrictToVirtualPort; - - // - // Extra fields. - // - // These are collected for backend analytics. For example, you might - // send a MatchID so that all of the records for a particular match can - // be located. Or send a game mode field so that you can compare - // the network characteristics of different game modes. - // - // (At the time of this writing we don't have a way to expose the data - // we collect to partners, but we hope to in the future so that you can - // get visibility into network conditions.) - // - [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)] - struct ExtraField - { - enum EType - { - k_EType_String, - k_EType_Int, // For most small integral values. Uses google protobuf sint64, so it's small on the wire. WARNING: In some places this value may be transmitted in JSON, in which case precision may be lost in backend analytics. Don't use this for an "identifier", use it for a scalar quantity. - k_EType_Fixed64, // 64 arbitrary bits. This value is treated as an "identifier". In places where JSON format is used, it will be serialized as a string. No aggregation / analytics can be performed on this value. - }; - EType m_eType; - - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 28)] - byte[] m_szName; - - [StructLayout(LayoutKind.Explicit)] - struct OptionValue - { - [FieldOffset(0)] - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] - byte[] m_szStringValue; - - [FieldOffset(0)] - long m_nIntValue; - - [FieldOffset(0)] - ulong m_nFixed64Value; - } - OptionValue m_val; - }; - - const int k_nMaxExtraFields = 16; - - int m_nExtraFields; - - [MarshalAs(UnmanagedType.ByValArray, SizeConst = k_nMaxExtraFields)] - ExtraField[] m_vecExtraFields; - - // Reset all fields - public void Clear() - { - } - } -} - -#endif // !DISABLESTEAMWORKS
\ No newline at end of file diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets/SteamDatagramRelayAuthTicket.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets/SteamDatagramRelayAuthTicket.cs.meta deleted file mode 100644 index c1464d4..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamDatagramTickets/SteamDatagramRelayAuthTicket.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 15e38ab651a746e43b5ed10db54a0d3e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamFriends.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamFriends.meta deleted file mode 100644 index 589fe94..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamFriends.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2093c750a2e614a418d09290c2161965 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamFriends/FriendsGroupID_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamFriends/FriendsGroupID_t.cs deleted file mode 100644 index b9b94f1..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamFriends/FriendsGroupID_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct FriendsGroupID_t : System.IEquatable<FriendsGroupID_t>, System.IComparable<FriendsGroupID_t> { - public static readonly FriendsGroupID_t Invalid = new FriendsGroupID_t(-1); - public short m_FriendsGroupID; - - public FriendsGroupID_t(short value) { - m_FriendsGroupID = value; - } - - public override string ToString() { - return m_FriendsGroupID.ToString(); - } - - public override bool Equals(object other) { - return other is FriendsGroupID_t && this == (FriendsGroupID_t)other; - } - - public override int GetHashCode() { - return m_FriendsGroupID.GetHashCode(); - } - - public static bool operator ==(FriendsGroupID_t x, FriendsGroupID_t y) { - return x.m_FriendsGroupID == y.m_FriendsGroupID; - } - - public static bool operator !=(FriendsGroupID_t x, FriendsGroupID_t y) { - return !(x == y); - } - - public static explicit operator FriendsGroupID_t(short value) { - return new FriendsGroupID_t(value); - } - - public static explicit operator short(FriendsGroupID_t that) { - return that.m_FriendsGroupID; - } - - public bool Equals(FriendsGroupID_t other) { - return m_FriendsGroupID == other.m_FriendsGroupID; - } - - public int CompareTo(FriendsGroupID_t other) { - return m_FriendsGroupID.CompareTo(other.m_FriendsGroupID); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamFriends/FriendsGroupID_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamFriends/FriendsGroupID_t.cs.meta deleted file mode 100644 index c8f5d46..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamFriends/FriendsGroupID_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 90d54edccd5581d44816f5e28bfd8a79 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTMLSurface.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTMLSurface.meta deleted file mode 100644 index d539a87..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTMLSurface.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5a8b07e2178653546b35486633c13d9e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTMLSurface/HHTMLBrowser.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTMLSurface/HHTMLBrowser.cs deleted file mode 100644 index a016a45..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTMLSurface/HHTMLBrowser.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct HHTMLBrowser : System.IEquatable<HHTMLBrowser>, System.IComparable<HHTMLBrowser> { - public static readonly HHTMLBrowser Invalid = new HHTMLBrowser(0); - public uint m_HHTMLBrowser; - - public HHTMLBrowser(uint value) { - m_HHTMLBrowser = value; - } - - public override string ToString() { - return m_HHTMLBrowser.ToString(); - } - - public override bool Equals(object other) { - return other is HHTMLBrowser && this == (HHTMLBrowser)other; - } - - public override int GetHashCode() { - return m_HHTMLBrowser.GetHashCode(); - } - - public static bool operator ==(HHTMLBrowser x, HHTMLBrowser y) { - return x.m_HHTMLBrowser == y.m_HHTMLBrowser; - } - - public static bool operator !=(HHTMLBrowser x, HHTMLBrowser y) { - return !(x == y); - } - - public static explicit operator HHTMLBrowser(uint value) { - return new HHTMLBrowser(value); - } - - public static explicit operator uint(HHTMLBrowser that) { - return that.m_HHTMLBrowser; - } - - public bool Equals(HHTMLBrowser other) { - return m_HHTMLBrowser == other.m_HHTMLBrowser; - } - - public int CompareTo(HHTMLBrowser other) { - return m_HHTMLBrowser.CompareTo(other.m_HHTMLBrowser); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTMLSurface/HHTMLBrowser.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTMLSurface/HHTMLBrowser.cs.meta deleted file mode 100644 index 8fac214..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTMLSurface/HHTMLBrowser.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 81d58fa9c521a8846974e9c906c53ca6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP.meta deleted file mode 100644 index db16262..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 646c6e2e130c5324da7f64ee70e64deb -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP/HTTPCookieContainerHandle.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP/HTTPCookieContainerHandle.cs deleted file mode 100644 index 34fa5af..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP/HTTPCookieContainerHandle.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct HTTPCookieContainerHandle : System.IEquatable<HTTPCookieContainerHandle>, System.IComparable<HTTPCookieContainerHandle> { - public static readonly HTTPCookieContainerHandle Invalid = new HTTPCookieContainerHandle(0); - public uint m_HTTPCookieContainerHandle; - - public HTTPCookieContainerHandle(uint value) { - m_HTTPCookieContainerHandle = value; - } - - public override string ToString() { - return m_HTTPCookieContainerHandle.ToString(); - } - - public override bool Equals(object other) { - return other is HTTPCookieContainerHandle && this == (HTTPCookieContainerHandle)other; - } - - public override int GetHashCode() { - return m_HTTPCookieContainerHandle.GetHashCode(); - } - - public static bool operator ==(HTTPCookieContainerHandle x, HTTPCookieContainerHandle y) { - return x.m_HTTPCookieContainerHandle == y.m_HTTPCookieContainerHandle; - } - - public static bool operator !=(HTTPCookieContainerHandle x, HTTPCookieContainerHandle y) { - return !(x == y); - } - - public static explicit operator HTTPCookieContainerHandle(uint value) { - return new HTTPCookieContainerHandle(value); - } - - public static explicit operator uint(HTTPCookieContainerHandle that) { - return that.m_HTTPCookieContainerHandle; - } - - public bool Equals(HTTPCookieContainerHandle other) { - return m_HTTPCookieContainerHandle == other.m_HTTPCookieContainerHandle; - } - - public int CompareTo(HTTPCookieContainerHandle other) { - return m_HTTPCookieContainerHandle.CompareTo(other.m_HTTPCookieContainerHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP/HTTPCookieContainerHandle.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP/HTTPCookieContainerHandle.cs.meta deleted file mode 100644 index 13252b7..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP/HTTPCookieContainerHandle.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 46e53a176d1039a499132c5707543617 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP/HTTPRequestHandle.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP/HTTPRequestHandle.cs deleted file mode 100644 index eddd6a8..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP/HTTPRequestHandle.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct HTTPRequestHandle : System.IEquatable<HTTPRequestHandle>, System.IComparable<HTTPRequestHandle> { - public static readonly HTTPRequestHandle Invalid = new HTTPRequestHandle(0); - public uint m_HTTPRequestHandle; - - public HTTPRequestHandle(uint value) { - m_HTTPRequestHandle = value; - } - - public override string ToString() { - return m_HTTPRequestHandle.ToString(); - } - - public override bool Equals(object other) { - return other is HTTPRequestHandle && this == (HTTPRequestHandle)other; - } - - public override int GetHashCode() { - return m_HTTPRequestHandle.GetHashCode(); - } - - public static bool operator ==(HTTPRequestHandle x, HTTPRequestHandle y) { - return x.m_HTTPRequestHandle == y.m_HTTPRequestHandle; - } - - public static bool operator !=(HTTPRequestHandle x, HTTPRequestHandle y) { - return !(x == y); - } - - public static explicit operator HTTPRequestHandle(uint value) { - return new HTTPRequestHandle(value); - } - - public static explicit operator uint(HTTPRequestHandle that) { - return that.m_HTTPRequestHandle; - } - - public bool Equals(HTTPRequestHandle other) { - return m_HTTPRequestHandle == other.m_HTTPRequestHandle; - } - - public int CompareTo(HTTPRequestHandle other) { - return m_HTTPRequestHandle.CompareTo(other.m_HTTPRequestHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP/HTTPRequestHandle.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP/HTTPRequestHandle.cs.meta deleted file mode 100644 index aa852ee..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamHTTP/HTTPRequestHandle.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b1a1dd2d769e5494188be1ede500917b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput.meta deleted file mode 100644 index 1b9541b..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 84e7f79a56edb674d8d20505cf8a3670 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputActionSetHandle_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputActionSetHandle_t.cs deleted file mode 100644 index c8836ed..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputActionSetHandle_t.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct InputActionSetHandle_t : System.IEquatable<InputActionSetHandle_t>, System.IComparable<InputActionSetHandle_t> { - public ulong m_InputActionSetHandle; - - public InputActionSetHandle_t(ulong value) { - m_InputActionSetHandle = value; - } - - public override string ToString() { - return m_InputActionSetHandle.ToString(); - } - - public override bool Equals(object other) { - return other is InputActionSetHandle_t && this == (InputActionSetHandle_t)other; - } - - public override int GetHashCode() { - return m_InputActionSetHandle.GetHashCode(); - } - - public static bool operator ==(InputActionSetHandle_t x, InputActionSetHandle_t y) { - return x.m_InputActionSetHandle == y.m_InputActionSetHandle; - } - - public static bool operator !=(InputActionSetHandle_t x, InputActionSetHandle_t y) { - return !(x == y); - } - - public static explicit operator InputActionSetHandle_t(ulong value) { - return new InputActionSetHandle_t(value); - } - - public static explicit operator ulong(InputActionSetHandle_t that) { - return that.m_InputActionSetHandle; - } - - public bool Equals(InputActionSetHandle_t other) { - return m_InputActionSetHandle == other.m_InputActionSetHandle; - } - - public int CompareTo(InputActionSetHandle_t other) { - return m_InputActionSetHandle.CompareTo(other.m_InputActionSetHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputActionSetHandle_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputActionSetHandle_t.cs.meta deleted file mode 100644 index 78ca451..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputActionSetHandle_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2933ebab378eea243a8bb0cd63811d37 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputAnalogActionHandle_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputAnalogActionHandle_t.cs deleted file mode 100644 index 7b8148c..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputAnalogActionHandle_t.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct InputAnalogActionHandle_t : System.IEquatable<InputAnalogActionHandle_t>, System.IComparable<InputAnalogActionHandle_t> { - public ulong m_InputAnalogActionHandle; - - public InputAnalogActionHandle_t(ulong value) { - m_InputAnalogActionHandle = value; - } - - public override string ToString() { - return m_InputAnalogActionHandle.ToString(); - } - - public override bool Equals(object other) { - return other is InputAnalogActionHandle_t && this == (InputAnalogActionHandle_t)other; - } - - public override int GetHashCode() { - return m_InputAnalogActionHandle.GetHashCode(); - } - - public static bool operator ==(InputAnalogActionHandle_t x, InputAnalogActionHandle_t y) { - return x.m_InputAnalogActionHandle == y.m_InputAnalogActionHandle; - } - - public static bool operator !=(InputAnalogActionHandle_t x, InputAnalogActionHandle_t y) { - return !(x == y); - } - - public static explicit operator InputAnalogActionHandle_t(ulong value) { - return new InputAnalogActionHandle_t(value); - } - - public static explicit operator ulong(InputAnalogActionHandle_t that) { - return that.m_InputAnalogActionHandle; - } - - public bool Equals(InputAnalogActionHandle_t other) { - return m_InputAnalogActionHandle == other.m_InputAnalogActionHandle; - } - - public int CompareTo(InputAnalogActionHandle_t other) { - return m_InputAnalogActionHandle.CompareTo(other.m_InputAnalogActionHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputAnalogActionHandle_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputAnalogActionHandle_t.cs.meta deleted file mode 100644 index f9dd523..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputAnalogActionHandle_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f878bf26706ae2849a17a61a5b31a863 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputDigitalActionHandle_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputDigitalActionHandle_t.cs deleted file mode 100644 index 28eb630..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputDigitalActionHandle_t.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct InputDigitalActionHandle_t : System.IEquatable<InputDigitalActionHandle_t>, System.IComparable<InputDigitalActionHandle_t> { - public ulong m_InputDigitalActionHandle; - - public InputDigitalActionHandle_t(ulong value) { - m_InputDigitalActionHandle = value; - } - - public override string ToString() { - return m_InputDigitalActionHandle.ToString(); - } - - public override bool Equals(object other) { - return other is InputDigitalActionHandle_t && this == (InputDigitalActionHandle_t)other; - } - - public override int GetHashCode() { - return m_InputDigitalActionHandle.GetHashCode(); - } - - public static bool operator ==(InputDigitalActionHandle_t x, InputDigitalActionHandle_t y) { - return x.m_InputDigitalActionHandle == y.m_InputDigitalActionHandle; - } - - public static bool operator !=(InputDigitalActionHandle_t x, InputDigitalActionHandle_t y) { - return !(x == y); - } - - public static explicit operator InputDigitalActionHandle_t(ulong value) { - return new InputDigitalActionHandle_t(value); - } - - public static explicit operator ulong(InputDigitalActionHandle_t that) { - return that.m_InputDigitalActionHandle; - } - - public bool Equals(InputDigitalActionHandle_t other) { - return m_InputDigitalActionHandle == other.m_InputDigitalActionHandle; - } - - public int CompareTo(InputDigitalActionHandle_t other) { - return m_InputDigitalActionHandle.CompareTo(other.m_InputDigitalActionHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputDigitalActionHandle_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputDigitalActionHandle_t.cs.meta deleted file mode 100644 index 58a317d..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputDigitalActionHandle_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b7e0225fbabbd2443914046575983874 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputHandle_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputHandle_t.cs deleted file mode 100644 index c686634..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputHandle_t.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct InputHandle_t : System.IEquatable<InputHandle_t>, System.IComparable<InputHandle_t> { - public ulong m_InputHandle; - - public InputHandle_t(ulong value) { - m_InputHandle = value; - } - - public override string ToString() { - return m_InputHandle.ToString(); - } - - public override bool Equals(object other) { - return other is InputHandle_t && this == (InputHandle_t)other; - } - - public override int GetHashCode() { - return m_InputHandle.GetHashCode(); - } - - public static bool operator ==(InputHandle_t x, InputHandle_t y) { - return x.m_InputHandle == y.m_InputHandle; - } - - public static bool operator !=(InputHandle_t x, InputHandle_t y) { - return !(x == y); - } - - public static explicit operator InputHandle_t(ulong value) { - return new InputHandle_t(value); - } - - public static explicit operator ulong(InputHandle_t that) { - return that.m_InputHandle; - } - - public bool Equals(InputHandle_t other) { - return m_InputHandle == other.m_InputHandle; - } - - public int CompareTo(InputHandle_t other) { - return m_InputHandle.CompareTo(other.m_InputHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputHandle_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputHandle_t.cs.meta deleted file mode 100644 index b4a0c51..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/InputHandle_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b9efdfe120ed0c24db8d9d397543e583 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/SteamInputActionEventCallbackPointer.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/SteamInputActionEventCallbackPointer.cs deleted file mode 100644 index 78f3c7b..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/SteamInputActionEventCallbackPointer.cs +++ /dev/null @@ -1,22 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Runtime.InteropServices.UnmanagedFunctionPointer(System.Runtime.InteropServices.CallingConvention.Cdecl)] - public delegate void SteamInputActionEventCallbackPointer(IntPtr /* SteamInputActionEvent_t* */ SteamInputActionEvent); -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/SteamInputActionEventCallbackPointer.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/SteamInputActionEventCallbackPointer.cs.meta deleted file mode 100644 index 6415ad7..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/SteamInputActionEventCallbackPointer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 40f4d6fda0f15ff47a9866d0afa2be32 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/SteamInputActionEvent_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/SteamInputActionEvent_t.cs deleted file mode 100644 index ceeaf31..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/SteamInputActionEvent_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks -{ - //----------------------------------------------------------------------------- - // Purpose: when callbacks are enabled this fires each time a controller action - // state changes - //----------------------------------------------------------------------------- - [System.Serializable] - [StructLayout(LayoutKind.Sequential)] - public struct SteamInputActionEvent_t - { - public InputHandle_t controllerHandle; - - public ESteamInputActionEventType eEventType; - - /// Option value - public OptionValue m_val; - - [System.Serializable] - [StructLayout(LayoutKind.Sequential)] - public struct AnalogAction_t - { - public InputAnalogActionHandle_t actionHandle; - - public InputAnalogActionData_t analogActionData; - } - - [System.Serializable] - [StructLayout(LayoutKind.Sequential)] - public struct DigitalAction_t - { - public InputDigitalActionHandle_t actionHandle; - - public InputDigitalActionData_t digitalActionData; - } - - [System.Serializable] - [StructLayout(LayoutKind.Explicit)] - public struct OptionValue - { - [FieldOffset(0)] - public AnalogAction_t analogAction; - - [FieldOffset(0)] - public DigitalAction_t digitalAction; - } - } -} - -#endif // !DISABLESTEAMWORKS
\ No newline at end of file diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/SteamInputActionEvent_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/SteamInputActionEvent_t.cs.meta deleted file mode 100644 index 43f2d64..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInput/SteamInputActionEvent_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 31fd8b9eec8549a4f94d7059185ef204 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory.meta deleted file mode 100644 index e224e9d..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 09b34f6991630564fa297d7142bb3be4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamInventoryResult_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamInventoryResult_t.cs deleted file mode 100644 index 308a8a9..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamInventoryResult_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct SteamInventoryResult_t : System.IEquatable<SteamInventoryResult_t>, System.IComparable<SteamInventoryResult_t> { - public static readonly SteamInventoryResult_t Invalid = new SteamInventoryResult_t(-1); - public int m_SteamInventoryResult; - - public SteamInventoryResult_t(int value) { - m_SteamInventoryResult = value; - } - - public override string ToString() { - return m_SteamInventoryResult.ToString(); - } - - public override bool Equals(object other) { - return other is SteamInventoryResult_t && this == (SteamInventoryResult_t)other; - } - - public override int GetHashCode() { - return m_SteamInventoryResult.GetHashCode(); - } - - public static bool operator ==(SteamInventoryResult_t x, SteamInventoryResult_t y) { - return x.m_SteamInventoryResult == y.m_SteamInventoryResult; - } - - public static bool operator !=(SteamInventoryResult_t x, SteamInventoryResult_t y) { - return !(x == y); - } - - public static explicit operator SteamInventoryResult_t(int value) { - return new SteamInventoryResult_t(value); - } - - public static explicit operator int(SteamInventoryResult_t that) { - return that.m_SteamInventoryResult; - } - - public bool Equals(SteamInventoryResult_t other) { - return m_SteamInventoryResult == other.m_SteamInventoryResult; - } - - public int CompareTo(SteamInventoryResult_t other) { - return m_SteamInventoryResult.CompareTo(other.m_SteamInventoryResult); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamInventoryResult_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamInventoryResult_t.cs.meta deleted file mode 100644 index afa527e..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamInventoryResult_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3655fc26cc26d1247913e462173de930 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamInventoryUpdateHandle_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamInventoryUpdateHandle_t.cs deleted file mode 100644 index 25b5719..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamInventoryUpdateHandle_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct SteamInventoryUpdateHandle_t : System.IEquatable<SteamInventoryUpdateHandle_t>, System.IComparable<SteamInventoryUpdateHandle_t> { - public static readonly SteamInventoryUpdateHandle_t Invalid = new SteamInventoryUpdateHandle_t(0xffffffffffffffff); - public ulong m_SteamInventoryUpdateHandle; - - public SteamInventoryUpdateHandle_t(ulong value) { - m_SteamInventoryUpdateHandle = value; - } - - public override string ToString() { - return m_SteamInventoryUpdateHandle.ToString(); - } - - public override bool Equals(object other) { - return other is SteamInventoryUpdateHandle_t && this == (SteamInventoryUpdateHandle_t)other; - } - - public override int GetHashCode() { - return m_SteamInventoryUpdateHandle.GetHashCode(); - } - - public static bool operator ==(SteamInventoryUpdateHandle_t x, SteamInventoryUpdateHandle_t y) { - return x.m_SteamInventoryUpdateHandle == y.m_SteamInventoryUpdateHandle; - } - - public static bool operator !=(SteamInventoryUpdateHandle_t x, SteamInventoryUpdateHandle_t y) { - return !(x == y); - } - - public static explicit operator SteamInventoryUpdateHandle_t(ulong value) { - return new SteamInventoryUpdateHandle_t(value); - } - - public static explicit operator ulong(SteamInventoryUpdateHandle_t that) { - return that.m_SteamInventoryUpdateHandle; - } - - public bool Equals(SteamInventoryUpdateHandle_t other) { - return m_SteamInventoryUpdateHandle == other.m_SteamInventoryUpdateHandle; - } - - public int CompareTo(SteamInventoryUpdateHandle_t other) { - return m_SteamInventoryUpdateHandle.CompareTo(other.m_SteamInventoryUpdateHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamInventoryUpdateHandle_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamInventoryUpdateHandle_t.cs.meta deleted file mode 100644 index 245c45d..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamInventoryUpdateHandle_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fb6aaeded4c5b154a9addb247ec4b530 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamItemDef_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamItemDef_t.cs deleted file mode 100644 index 974c2fc..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamItemDef_t.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct SteamItemDef_t : System.IEquatable<SteamItemDef_t>, System.IComparable<SteamItemDef_t> { - public int m_SteamItemDef; - - public SteamItemDef_t(int value) { - m_SteamItemDef = value; - } - - public override string ToString() { - return m_SteamItemDef.ToString(); - } - - public override bool Equals(object other) { - return other is SteamItemDef_t && this == (SteamItemDef_t)other; - } - - public override int GetHashCode() { - return m_SteamItemDef.GetHashCode(); - } - - public static bool operator ==(SteamItemDef_t x, SteamItemDef_t y) { - return x.m_SteamItemDef == y.m_SteamItemDef; - } - - public static bool operator !=(SteamItemDef_t x, SteamItemDef_t y) { - return !(x == y); - } - - public static explicit operator SteamItemDef_t(int value) { - return new SteamItemDef_t(value); - } - - public static explicit operator int(SteamItemDef_t that) { - return that.m_SteamItemDef; - } - - public bool Equals(SteamItemDef_t other) { - return m_SteamItemDef == other.m_SteamItemDef; - } - - public int CompareTo(SteamItemDef_t other) { - return m_SteamItemDef.CompareTo(other.m_SteamItemDef); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamItemDef_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamItemDef_t.cs.meta deleted file mode 100644 index 4302da6..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamItemDef_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cbb744003026c674aa18c48cedffb1d5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamItemInstanceID_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamItemInstanceID_t.cs deleted file mode 100644 index 339d892..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamItemInstanceID_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct SteamItemInstanceID_t : System.IEquatable<SteamItemInstanceID_t>, System.IComparable<SteamItemInstanceID_t> { - public static readonly SteamItemInstanceID_t Invalid = new SteamItemInstanceID_t(0xFFFFFFFFFFFFFFFF); - public ulong m_SteamItemInstanceID; - - public SteamItemInstanceID_t(ulong value) { - m_SteamItemInstanceID = value; - } - - public override string ToString() { - return m_SteamItemInstanceID.ToString(); - } - - public override bool Equals(object other) { - return other is SteamItemInstanceID_t && this == (SteamItemInstanceID_t)other; - } - - public override int GetHashCode() { - return m_SteamItemInstanceID.GetHashCode(); - } - - public static bool operator ==(SteamItemInstanceID_t x, SteamItemInstanceID_t y) { - return x.m_SteamItemInstanceID == y.m_SteamItemInstanceID; - } - - public static bool operator !=(SteamItemInstanceID_t x, SteamItemInstanceID_t y) { - return !(x == y); - } - - public static explicit operator SteamItemInstanceID_t(ulong value) { - return new SteamItemInstanceID_t(value); - } - - public static explicit operator ulong(SteamItemInstanceID_t that) { - return that.m_SteamItemInstanceID; - } - - public bool Equals(SteamItemInstanceID_t other) { - return m_SteamItemInstanceID == other.m_SteamItemInstanceID; - } - - public int CompareTo(SteamItemInstanceID_t other) { - return m_SteamItemInstanceID.CompareTo(other.m_SteamItemInstanceID); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamItemInstanceID_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamItemInstanceID_t.cs.meta deleted file mode 100644 index 238071c..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamInventory/SteamItemInstanceID_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 342c072be17625543a7335f6657a1d6a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking.meta deleted file mode 100644 index 0bca0dd..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8f7461f6b90d23648a087ee81fe7639b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking/HServerListRequest.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking/HServerListRequest.cs deleted file mode 100644 index 60bfa9e..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking/HServerListRequest.cs +++ /dev/null @@ -1,61 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct HServerListRequest : System.IEquatable<HServerListRequest> { - public static readonly HServerListRequest Invalid = new HServerListRequest(System.IntPtr.Zero); - public System.IntPtr m_HServerListRequest; - - public HServerListRequest(System.IntPtr value) { - m_HServerListRequest = value; - } - - public override string ToString() { - return m_HServerListRequest.ToString(); - } - - public override bool Equals(object other) { - return other is HServerListRequest && this == (HServerListRequest)other; - } - - public override int GetHashCode() { - return m_HServerListRequest.GetHashCode(); - } - - public static bool operator ==(HServerListRequest x, HServerListRequest y) { - return x.m_HServerListRequest == y.m_HServerListRequest; - } - - public static bool operator !=(HServerListRequest x, HServerListRequest y) { - return !(x == y); - } - - public static explicit operator HServerListRequest(System.IntPtr value) { - return new HServerListRequest(value); - } - - public static explicit operator System.IntPtr(HServerListRequest that) { - return that.m_HServerListRequest; - } - - public bool Equals(HServerListRequest other) { - return m_HServerListRequest == other.m_HServerListRequest; - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking/HServerListRequest.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking/HServerListRequest.cs.meta deleted file mode 100644 index b4bdc80..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking/HServerListRequest.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fcc822173185aef4bb50a5a5713a3d5e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking/HServerQuery.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking/HServerQuery.cs deleted file mode 100644 index 6d92d23..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking/HServerQuery.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct HServerQuery : System.IEquatable<HServerQuery>, System.IComparable<HServerQuery> { - public static readonly HServerQuery Invalid = new HServerQuery(-1); - public int m_HServerQuery; - - public HServerQuery(int value) { - m_HServerQuery = value; - } - - public override string ToString() { - return m_HServerQuery.ToString(); - } - - public override bool Equals(object other) { - return other is HServerQuery && this == (HServerQuery)other; - } - - public override int GetHashCode() { - return m_HServerQuery.GetHashCode(); - } - - public static bool operator ==(HServerQuery x, HServerQuery y) { - return x.m_HServerQuery == y.m_HServerQuery; - } - - public static bool operator !=(HServerQuery x, HServerQuery y) { - return !(x == y); - } - - public static explicit operator HServerQuery(int value) { - return new HServerQuery(value); - } - - public static explicit operator int(HServerQuery that) { - return that.m_HServerQuery; - } - - public bool Equals(HServerQuery other) { - return m_HServerQuery == other.m_HServerQuery; - } - - public int CompareTo(HServerQuery other) { - return m_HServerQuery.CompareTo(other.m_HServerQuery); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking/HServerQuery.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking/HServerQuery.cs.meta deleted file mode 100644 index 0d03768..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamMatchmaking/HServerQuery.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b3ebfd1441df2ab43b6ff570a5434825 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking.meta deleted file mode 100644 index 4f60e36..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5dac59af1c5f6e84e80775c18fbe1a39 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking/SNetListenSocket_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking/SNetListenSocket_t.cs deleted file mode 100644 index 13d9668..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking/SNetListenSocket_t.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct SNetListenSocket_t : System.IEquatable<SNetListenSocket_t>, System.IComparable<SNetListenSocket_t> { - public uint m_SNetListenSocket; - - public SNetListenSocket_t(uint value) { - m_SNetListenSocket = value; - } - - public override string ToString() { - return m_SNetListenSocket.ToString(); - } - - public override bool Equals(object other) { - return other is SNetListenSocket_t && this == (SNetListenSocket_t)other; - } - - public override int GetHashCode() { - return m_SNetListenSocket.GetHashCode(); - } - - public static bool operator ==(SNetListenSocket_t x, SNetListenSocket_t y) { - return x.m_SNetListenSocket == y.m_SNetListenSocket; - } - - public static bool operator !=(SNetListenSocket_t x, SNetListenSocket_t y) { - return !(x == y); - } - - public static explicit operator SNetListenSocket_t(uint value) { - return new SNetListenSocket_t(value); - } - - public static explicit operator uint(SNetListenSocket_t that) { - return that.m_SNetListenSocket; - } - - public bool Equals(SNetListenSocket_t other) { - return m_SNetListenSocket == other.m_SNetListenSocket; - } - - public int CompareTo(SNetListenSocket_t other) { - return m_SNetListenSocket.CompareTo(other.m_SNetListenSocket); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking/SNetListenSocket_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking/SNetListenSocket_t.cs.meta deleted file mode 100644 index 761c032..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking/SNetListenSocket_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 64b4f5fdd688b0f44a78b8f79471aaa7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking/SNetSocket_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking/SNetSocket_t.cs deleted file mode 100644 index 52f6ac8..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking/SNetSocket_t.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct SNetSocket_t : System.IEquatable<SNetSocket_t>, System.IComparable<SNetSocket_t> { - public uint m_SNetSocket; - - public SNetSocket_t(uint value) { - m_SNetSocket = value; - } - - public override string ToString() { - return m_SNetSocket.ToString(); - } - - public override bool Equals(object other) { - return other is SNetSocket_t && this == (SNetSocket_t)other; - } - - public override int GetHashCode() { - return m_SNetSocket.GetHashCode(); - } - - public static bool operator ==(SNetSocket_t x, SNetSocket_t y) { - return x.m_SNetSocket == y.m_SNetSocket; - } - - public static bool operator !=(SNetSocket_t x, SNetSocket_t y) { - return !(x == y); - } - - public static explicit operator SNetSocket_t(uint value) { - return new SNetSocket_t(value); - } - - public static explicit operator uint(SNetSocket_t that) { - return that.m_SNetSocket; - } - - public bool Equals(SNetSocket_t other) { - return m_SNetSocket == other.m_SNetSocket; - } - - public int CompareTo(SNetSocket_t other) { - return m_SNetSocket.CompareTo(other.m_SNetSocket); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking/SNetSocket_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking/SNetSocket_t.cs.meta deleted file mode 100644 index 94493ec..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworking/SNetSocket_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 513e29c43cea6fe43bae1ca068e814fc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets.meta deleted file mode 100644 index 660e11a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 37be22eb1636ffe42880021313a27edd -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets/ISteamNetworkingConnectionSignaling.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets/ISteamNetworkingConnectionSignaling.cs deleted file mode 100644 index 4dafa4d..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets/ISteamNetworkingConnectionSignaling.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks -{ - /// Interface used to send signaling messages for a particular connection. - /// - /// - For connections initiated locally, you will construct it and pass - /// it to ISteamNetworkingSockets::ConnectP2PCustomSignaling. - /// - For connections initiated remotely and "accepted" locally, you - /// will return it from ISteamNetworkingSignalingRecvContext::OnConnectRequest - [System.Serializable] - [StructLayout(LayoutKind.Sequential)] - public struct ISteamNetworkingConnectionSignaling - { - /// Called to send a rendezvous message to the remote peer. This may be called - /// from any thread, at any time, so you need to be thread-safe! Don't take - /// any locks that might hold while calling into SteamNetworkingSockets functions, - /// because this could lead to deadlocks. - /// - /// Note that when initiating a connection, we may not know the identity - /// of the peer, if you did not specify it in ConnectP2PCustomSignaling. - /// - /// Return true if a best-effort attempt was made to deliver the message. - /// If you return false, it is assumed that the situation is fatal; - /// the connection will be closed, and Release() will be called - /// eventually. - /// - /// Signaling objects will not be shared between connections. - /// You can assume that the same value of hConn will be used - /// every time. - public bool SendSignal(HSteamNetConnection hConn, ref SteamNetConnectionInfo_t info, IntPtr pMsg, int cbMsg) { - return NativeMethods.SteamAPI_ISteamNetworkingConnectionSignaling_SendSignal(ref this, hConn, ref info, pMsg, cbMsg); - } - - /// Called when the connection no longer needs to send signals. - /// Note that this happens eventually (but not immediately) after - /// the connection is closed. Signals may need to be sent for a brief - /// time after the connection is closed, to clean up the connection. - /// - /// If you do not need to save any additional per-connection information - /// and can handle SendSignal() using only the arguments supplied, you do - /// not need to actually create different objects per connection. In that - /// case, it is valid for all connections to use the same global object, and - /// for this function to do nothing. - public void Release() { - NativeMethods.SteamAPI_ISteamNetworkingConnectionSignaling_Release(ref this); - } - } -} - -#endif // !DISABLESTEAMWORKS
\ No newline at end of file diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets/ISteamNetworkingConnectionSignaling.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets/ISteamNetworkingConnectionSignaling.cs.meta deleted file mode 100644 index 5d3e5af..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets/ISteamNetworkingConnectionSignaling.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0cfb93a120f656a43b7e5969811789e8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets/ISteamNetworkingSignalingRecvContext.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets/ISteamNetworkingSignalingRecvContext.cs deleted file mode 100644 index 18511a0..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets/ISteamNetworkingSignalingRecvContext.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks -{ - /// Interface used when a custom signal is received. - /// See ISteamNetworkingSockets::ReceivedP2PCustomSignal - [System.Serializable] - [StructLayout(LayoutKind.Sequential)] - public struct ISteamNetworkingSignalingRecvContext - { - /// Called when the signal represents a request for a new connection. - /// - /// If you want to ignore the request, just return NULL. In this case, - /// the peer will NOT receive any reply. You should consider ignoring - /// requests rather than actively rejecting them, as a security measure. - /// If you actively reject requests, then this makes it possible to detect - /// if a user is online or not, just by sending them a request. - /// - /// If you wish to send back a rejection, then use - /// ISteamNetworkingSockets::CloseConnection() and then return NULL. - /// We will marshal a properly formatted rejection signal and - /// call SendRejectionSignal() so you can send it to them. - /// - /// If you return a signaling object, the connection is NOT immediately - /// accepted by default. Instead, it stays in the "connecting" state, - /// and the usual callback is posted, and your app can accept the - /// connection using ISteamNetworkingSockets::AcceptConnection. This - /// may be useful so that these sorts of connections can be more similar - /// to your application code as other types of connections accepted on - /// a listen socket. If this is not useful and you want to skip this - /// callback process and immediately accept the connection, call - /// ISteamNetworkingSockets::AcceptConnection before returning the - /// signaling object. - /// - /// After accepting a connection (through either means), the connection - /// will transition into the "finding route" state. - public IntPtr OnConnectRequest(HSteamNetConnection hConn, ref SteamNetworkingIdentity identityPeer, int nLocalVirtualPort) { - return NativeMethods.SteamAPI_ISteamNetworkingSignalingRecvContext_OnConnectRequest(ref this, hConn, ref identityPeer, nLocalVirtualPort); - } - - /// This is called to actively communicate rejection or failure - /// to the incoming message. If you intend to ignore all incoming requests - /// that you do not wish to accept, then it's not strictly necessary to - /// implement this. - public void SendRejectionSignal(ref SteamNetworkingIdentity identityPeer, IntPtr pMsg, int cbMsg) { - NativeMethods.SteamAPI_ISteamNetworkingSignalingRecvContext_SendRejectionSignal(ref this, ref identityPeer, pMsg, cbMsg); - } - } -} - -#endif // !DISABLESTEAMWORKS
\ No newline at end of file diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets/ISteamNetworkingSignalingRecvContext.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets/ISteamNetworkingSignalingRecvContext.cs.meta deleted file mode 100644 index 5e48bf5..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingSockets/ISteamNetworkingSignalingRecvContext.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fa2e1ae613a00394e93e19a1a9ffcdd9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes.meta deleted file mode 100644 index a7148ba..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1ba4e1796c90994458024f38a21ddc00 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/FSteamNetworkingSocketsDebugOutput.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/FSteamNetworkingSocketsDebugOutput.cs deleted file mode 100644 index 81e0604..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/FSteamNetworkingSocketsDebugOutput.cs +++ /dev/null @@ -1,23 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - /// Setup callback for debug output, and the desired verbosity you want. - [System.Runtime.InteropServices.UnmanagedFunctionPointer(System.Runtime.InteropServices.CallingConvention.Cdecl)] - public delegate void FSteamNetworkingSocketsDebugOutput(ESteamNetworkingSocketsDebugOutputType nType, System.Text.StringBuilder pszMsg); -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/FSteamNetworkingSocketsDebugOutput.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/FSteamNetworkingSocketsDebugOutput.cs.meta deleted file mode 100644 index 376bc55..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/FSteamNetworkingSocketsDebugOutput.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 01e845f5c7ac1344bb4f339a4517f229 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamListenSocket.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamListenSocket.cs deleted file mode 100644 index 9d22029..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamListenSocket.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct HSteamListenSocket : System.IEquatable<HSteamListenSocket>, System.IComparable<HSteamListenSocket> { - public static readonly HSteamListenSocket Invalid = new HSteamListenSocket(0); - public uint m_HSteamListenSocket; - - public HSteamListenSocket(uint value) { - m_HSteamListenSocket = value; - } - - public override string ToString() { - return m_HSteamListenSocket.ToString(); - } - - public override bool Equals(object other) { - return other is HSteamListenSocket && this == (HSteamListenSocket)other; - } - - public override int GetHashCode() { - return m_HSteamListenSocket.GetHashCode(); - } - - public static bool operator ==(HSteamListenSocket x, HSteamListenSocket y) { - return x.m_HSteamListenSocket == y.m_HSteamListenSocket; - } - - public static bool operator !=(HSteamListenSocket x, HSteamListenSocket y) { - return !(x == y); - } - - public static explicit operator HSteamListenSocket(uint value) { - return new HSteamListenSocket(value); - } - - public static explicit operator uint(HSteamListenSocket that) { - return that.m_HSteamListenSocket; - } - - public bool Equals(HSteamListenSocket other) { - return m_HSteamListenSocket == other.m_HSteamListenSocket; - } - - public int CompareTo(HSteamListenSocket other) { - return m_HSteamListenSocket.CompareTo(other.m_HSteamListenSocket); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamListenSocket.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamListenSocket.cs.meta deleted file mode 100644 index 3b2fea6..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamListenSocket.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 563cb1ebcd2c39742aab1d18d195c956 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamNetConnection.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamNetConnection.cs deleted file mode 100644 index 02e0ab5..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamNetConnection.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct HSteamNetConnection : System.IEquatable<HSteamNetConnection>, System.IComparable<HSteamNetConnection> { - public static readonly HSteamNetConnection Invalid = new HSteamNetConnection(0); - public uint m_HSteamNetConnection; - - public HSteamNetConnection(uint value) { - m_HSteamNetConnection = value; - } - - public override string ToString() { - return m_HSteamNetConnection.ToString(); - } - - public override bool Equals(object other) { - return other is HSteamNetConnection && this == (HSteamNetConnection)other; - } - - public override int GetHashCode() { - return m_HSteamNetConnection.GetHashCode(); - } - - public static bool operator ==(HSteamNetConnection x, HSteamNetConnection y) { - return x.m_HSteamNetConnection == y.m_HSteamNetConnection; - } - - public static bool operator !=(HSteamNetConnection x, HSteamNetConnection y) { - return !(x == y); - } - - public static explicit operator HSteamNetConnection(uint value) { - return new HSteamNetConnection(value); - } - - public static explicit operator uint(HSteamNetConnection that) { - return that.m_HSteamNetConnection; - } - - public bool Equals(HSteamNetConnection other) { - return m_HSteamNetConnection == other.m_HSteamNetConnection; - } - - public int CompareTo(HSteamNetConnection other) { - return m_HSteamNetConnection.CompareTo(other.m_HSteamNetConnection); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamNetConnection.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamNetConnection.cs.meta deleted file mode 100644 index 633db88..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamNetConnection.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d21865a9baf5e3e46bdb32c46cda3f79 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamNetPollGroup.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamNetPollGroup.cs deleted file mode 100644 index 662389f..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamNetPollGroup.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct HSteamNetPollGroup : System.IEquatable<HSteamNetPollGroup>, System.IComparable<HSteamNetPollGroup> { - public static readonly HSteamNetPollGroup Invalid = new HSteamNetPollGroup(0); - public uint m_HSteamNetPollGroup; - - public HSteamNetPollGroup(uint value) { - m_HSteamNetPollGroup = value; - } - - public override string ToString() { - return m_HSteamNetPollGroup.ToString(); - } - - public override bool Equals(object other) { - return other is HSteamNetPollGroup && this == (HSteamNetPollGroup)other; - } - - public override int GetHashCode() { - return m_HSteamNetPollGroup.GetHashCode(); - } - - public static bool operator ==(HSteamNetPollGroup x, HSteamNetPollGroup y) { - return x.m_HSteamNetPollGroup == y.m_HSteamNetPollGroup; - } - - public static bool operator !=(HSteamNetPollGroup x, HSteamNetPollGroup y) { - return !(x == y); - } - - public static explicit operator HSteamNetPollGroup(uint value) { - return new HSteamNetPollGroup(value); - } - - public static explicit operator uint(HSteamNetPollGroup that) { - return that.m_HSteamNetPollGroup; - } - - public bool Equals(HSteamNetPollGroup other) { - return m_HSteamNetPollGroup == other.m_HSteamNetPollGroup; - } - - public int CompareTo(HSteamNetPollGroup other) { - return m_HSteamNetPollGroup.CompareTo(other.m_HSteamNetPollGroup); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamNetPollGroup.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamNetPollGroup.cs.meta deleted file mode 100644 index 93bcbbc..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/HSteamNetPollGroup.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e0b21cbbe5b0d2c4789c121a63ff96d7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingConfigValue_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingConfigValue_t.cs deleted file mode 100644 index 2222a26..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingConfigValue_t.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks -{ - /// In a few places we need to set configuration options on listen sockets and connections, and - /// have them take effect *before* the listen socket or connection really starts doing anything. - /// Creating the object and then setting the options "immediately" after creation doesn't work - /// completely, because network packets could be received between the time the object is created and - /// when the options are applied. To set options at creation time in a reliable way, they must be - /// passed to the creation function. This structure is used to pass those options. - /// - /// For the meaning of these fields, see ISteamNetworkingUtils::SetConfigValue. Basically - /// when the object is created, we just iterate over the list of options and call - /// ISteamNetworkingUtils::SetConfigValueStruct, where the scope arguments are supplied by the - /// object being created. - [System.Serializable] - [StructLayout(LayoutKind.Sequential)] - public struct SteamNetworkingConfigValue_t - { - /// Which option is being set - public ESteamNetworkingConfigValue m_eValue; - - /// Which field below did you fill in? - public ESteamNetworkingConfigDataType m_eDataType; - - /// Option value - public OptionValue m_val; - - [StructLayout(LayoutKind.Explicit)] - public struct OptionValue - { - [FieldOffset(0)] - public int m_int32; - - [FieldOffset(0)] - public long m_int64; - - [FieldOffset(0)] - public float m_float; - - [FieldOffset(0)] - public IntPtr m_string; // Points to your '\0'-terminated buffer - - [FieldOffset(0)] - public IntPtr m_functionPtr; - } - } -} - -#endif // !DISABLESTEAMWORKS
\ No newline at end of file diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingConfigValue_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingConfigValue_t.cs.meta deleted file mode 100644 index 650ccfe..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingConfigValue_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2b673ffa9a546ca4bad40431041e7588 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingErrMsg.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingErrMsg.cs deleted file mode 100644 index 0d58dd1..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingErrMsg.cs +++ /dev/null @@ -1,30 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks -{ - /// Used to return English-language diagnostic error messages to caller. - /// (For debugging or spewing to a console, etc. Not intended for UI.) - [System.Serializable] - [StructLayout(LayoutKind.Sequential)] - public struct SteamNetworkingErrMsg - { - [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cchMaxSteamNetworkingErrMsg)] - public byte[] m_SteamNetworkingErrMsg; - } -} - -#endif // !DISABLESTEAMWORKS
\ No newline at end of file diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingErrMsg.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingErrMsg.cs.meta deleted file mode 100644 index 3867d2f..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingErrMsg.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fd8272539368a044086b35f3cbab9243 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingIPAddr.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingIPAddr.cs deleted file mode 100644 index fe44c8d..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingIPAddr.cs +++ /dev/null @@ -1,114 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks -{ - /// Store an IP and port. IPv6 is always used; IPv4 is represented using - /// "IPv4-mapped" addresses: IPv4 aa.bb.cc.dd => IPv6 ::ffff:aabb:ccdd - /// (RFC 4291 section 2.5.5.2.) - [System.Serializable] - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct SteamNetworkingIPAddr : System.IEquatable<SteamNetworkingIPAddr> - { - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] - public byte[] m_ipv6; - public ushort m_port; // Host byte order - - // Max length of the buffer needed to hold IP formatted using ToString, including '\0' - // ([0123:4567:89ab:cdef:0123:4567:89ab:cdef]:12345) - public const int k_cchMaxString = 48; - - // Set everything to zero. E.g. [::]:0 - public void Clear() { - NativeMethods.SteamAPI_SteamNetworkingIPAddr_Clear(ref this); - } - - // Return true if the IP is ::0. (Doesn't check port.) - public bool IsIPv6AllZeros() { - return NativeMethods.SteamAPI_SteamNetworkingIPAddr_IsIPv6AllZeros(ref this); - } - - // Set IPv6 address. IP is interpreted as bytes, so there are no endian issues. (Same as inaddr_in6.) The IP can be a mapped IPv4 address - public void SetIPv6(byte[] ipv6, ushort nPort) { - NativeMethods.SteamAPI_SteamNetworkingIPAddr_SetIPv6(ref this, ipv6, nPort); - } - - // Sets to IPv4 mapped address. IP and port are in host byte order. - public void SetIPv4(uint nIP, ushort nPort) { - NativeMethods.SteamAPI_SteamNetworkingIPAddr_SetIPv4(ref this, nIP, nPort); - } - - // Return true if IP is mapped IPv4 - public bool IsIPv4() { - return NativeMethods.SteamAPI_SteamNetworkingIPAddr_IsIPv4(ref this); - } - - // Returns IP in host byte order (e.g. aa.bb.cc.dd as 0xaabbccdd). Returns 0 if IP is not mapped IPv4. - public uint GetIPv4() { - return NativeMethods.SteamAPI_SteamNetworkingIPAddr_GetIPv4(ref this); - } - - // Set to the IPv6 localhost address ::1, and the specified port. - public void SetIPv6LocalHost(ushort nPort = 0) { - NativeMethods.SteamAPI_SteamNetworkingIPAddr_SetIPv6LocalHost(ref this, nPort); - } - - // Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) - public bool IsLocalHost() { - return NativeMethods.SteamAPI_SteamNetworkingIPAddr_IsLocalHost(ref this); - } - - /// Print to a string, with or without the port. Mapped IPv4 addresses are printed - /// as dotted decimal (12.34.56.78), otherwise this will print the canonical - /// form according to RFC5952. If you include the port, IPv6 will be surrounded by - /// brackets, e.g. [::1:2]:80. Your buffer should be at least k_cchMaxString bytes - /// to avoid truncation - /// - /// See also SteamNetworkingIdentityRender - public void ToString(out string buf, bool bWithPort) { - IntPtr buf2 = Marshal.AllocHGlobal(k_cchMaxString); - NativeMethods.SteamAPI_SteamNetworkingIPAddr_ToString(ref this, buf2, k_cchMaxString, bWithPort); - buf = InteropHelp.PtrToStringUTF8(buf2); - Marshal.FreeHGlobal(buf2); - } - - /// Parse an IP address and optional port. If a port is not present, it is set to 0. - /// (This means that you cannot tell if a zero port was explicitly specified.) - public bool ParseString(string pszStr) { - using (var pszStr2 = new InteropHelp.UTF8StringHandle(pszStr)) { - return NativeMethods.SteamAPI_SteamNetworkingIPAddr_ParseString(ref this, pszStr2); - } - } - - /// See if two addresses are identical - public bool Equals(SteamNetworkingIPAddr x) { - return NativeMethods.SteamAPI_SteamNetworkingIPAddr_IsEqualTo(ref this, ref x); - } - - /// Classify address as FakeIP. This function never returns - /// k_ESteamNetworkingFakeIPType_Invalid. - public ESteamNetworkingFakeIPType GetFakeIPType() { - return NativeMethods.SteamAPI_SteamNetworkingIPAddr_GetFakeIPType(ref this); - } - - /// Return true if we are a FakeIP - public bool IsFakeIP() { - return GetFakeIPType() > ESteamNetworkingFakeIPType.k_ESteamNetworkingFakeIPType_NotFake; - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingIPAddr.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingIPAddr.cs.meta deleted file mode 100644 index 0bddf10..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingIPAddr.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cf91bd24bcddd80499a9a07ed0497513 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingIdentity.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingIdentity.cs deleted file mode 100644 index b9577a3..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingIdentity.cs +++ /dev/null @@ -1,212 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks -{ - /// An abstract way to represent the identity of a network host. All identities can - /// be represented as simple string. Furthermore, this string representation is actually - /// used on the wire in several places, even though it is less efficient, in order to - /// facilitate forward compatibility. (Old client code can handle an identity type that - /// it doesn't understand.) - [System.Serializable] - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct SteamNetworkingIdentity : System.IEquatable<SteamNetworkingIdentity> - { - /// Type of identity. - public ESteamNetworkingIdentityType m_eType; - - // - // Internal representation. Don't access this directly, use the accessors! - // - // Number of bytes that are relevant below. This MUST ALWAYS be - // set. (Use the accessors!) This is important to enable old code to work - // with new identity types. - private int m_cbSize; - - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] - private uint[] m_reserved; // Pad structure to leave easy room for future expansion - - // Max sizes - public const int k_cchMaxString = 128; // Max length of the buffer needed to hold any identity, formatted in string format by ToString - public const int k_cchMaxGenericString = 32; // Max length of the string for generic string identities. Including terminating '\0' - public const int k_cchMaxXboxPairwiseID = 33; // Including terminating '\0' - public const int k_cbMaxGenericBytes = 32; - - // - // Get/Set in various formats. - // - - public void Clear() { - NativeMethods.SteamAPI_SteamNetworkingIdentity_Clear(ref this); - } - - // Return true if we are the invalid type. Does not make any other validity checks (e.g. is SteamID actually valid) - public bool IsInvalid() { - return NativeMethods.SteamAPI_SteamNetworkingIdentity_IsInvalid(ref this); - } - - public void SetSteamID(CSteamID steamID) { - NativeMethods.SteamAPI_SteamNetworkingIdentity_SetSteamID(ref this, (ulong)steamID); - } - - // Return black CSteamID (!IsValid()) if identity is not a SteamID - public CSteamID GetSteamID() { - return (CSteamID)NativeMethods.SteamAPI_SteamNetworkingIdentity_GetSteamID(ref this); - } - - // Takes SteamID as raw 64-bit number - public void SetSteamID64(ulong steamID) { - NativeMethods.SteamAPI_SteamNetworkingIdentity_SetSteamID64(ref this, steamID); - } - - // Returns 0 if identity is not SteamID - public ulong GetSteamID64() { - return NativeMethods.SteamAPI_SteamNetworkingIdentity_GetSteamID64(ref this); - } - - // Returns false if invalid length - public bool SetXboxPairwiseID(string pszString) - { - using (var pszString2 = new InteropHelp.UTF8StringHandle(pszString)) { - return NativeMethods.SteamAPI_SteamNetworkingIdentity_SetXboxPairwiseID(ref this, pszString2); - } - } - - // Returns nullptr if not Xbox ID - public string GetXboxPairwiseID() - { - return InteropHelp.PtrToStringUTF8(NativeMethods.SteamAPI_SteamNetworkingIdentity_GetXboxPairwiseID(ref this)); - } - - public void SetPSNID(ulong id) - { - NativeMethods.SteamAPI_SteamNetworkingIdentity_SetPSNID(ref this, id); - } - - // Returns 0 if not PSN - public ulong GetPSNID() - { - return NativeMethods.SteamAPI_SteamNetworkingIdentity_GetPSNID(ref this); - } - - public void SetStadiaID(ulong id) - { - NativeMethods.SteamAPI_SteamNetworkingIdentity_SetStadiaID(ref this, id); - } - - // Returns 0 if not Stadia - public ulong GetStadiaID() - { - return NativeMethods.SteamAPI_SteamNetworkingIdentity_GetStadiaID(ref this); - } - - // Set to specified IP:port - public void SetIPAddr(SteamNetworkingIPAddr addr) { - NativeMethods.SteamAPI_SteamNetworkingIdentity_SetIPAddr(ref this, ref addr); - } - - // returns null if we are not an IP address. - public SteamNetworkingIPAddr GetIPAddr(){ - throw new System.NotImplementedException(); - // TODO: Should SteamNetworkingIPAddr be a class? - // or should this return some kind of pointer instead? - //return NativeMethods.SteamAPI_SteamNetworkingIdentity_GetIPAddr(ref this); - } - - public void SetIPv4Addr(uint nIPv4, ushort nPort) { - NativeMethods.SteamAPI_SteamNetworkingIdentity_SetIPv4Addr(ref this, nIPv4, nPort); - } - - // returns 0 if we are not an IPv4 address. - public uint GetIPv4() { - return NativeMethods.SteamAPI_SteamNetworkingIdentity_GetIPv4(ref this); - } - - public ESteamNetworkingFakeIPType GetFakeIPType() { - return NativeMethods.SteamAPI_SteamNetworkingIdentity_GetFakeIPType(ref this); - } - - public bool IsFakeIP() { - return GetFakeIPType() > ESteamNetworkingFakeIPType.k_ESteamNetworkingFakeIPType_NotFake; - } - - // "localhost" is equivalent for many purposes to "anonymous." Our remote - // will identify us by the network address we use. - // Set to localhost. (We always use IPv6 ::1 for this, not 127.0.0.1) - public void SetLocalHost() { - NativeMethods.SteamAPI_SteamNetworkingIdentity_SetLocalHost(ref this); - } - - // Return true if this identity is localhost. - public bool IsLocalHost() { - return NativeMethods.SteamAPI_SteamNetworkingIdentity_IsLocalHost(ref this); - } - - // Returns false if invalid length - public bool SetGenericString(string pszString) { - using (var pszString2 = new InteropHelp.UTF8StringHandle(pszString)) { - return NativeMethods.SteamAPI_SteamNetworkingIdentity_SetGenericString(ref this, pszString2); - } - } - - // Returns nullptr if not generic string type - public string GetGenericString() { - return InteropHelp.PtrToStringUTF8(NativeMethods.SteamAPI_SteamNetworkingIdentity_GetGenericString(ref this)); - } - - // Returns false if invalid size. - public bool SetGenericBytes(byte[] data, uint cbLen) { - return NativeMethods.SteamAPI_SteamNetworkingIdentity_SetGenericBytes(ref this, data, cbLen); - } - - // Returns null if not generic bytes type - public byte[] GetGenericBytes(out int cbLen) { - throw new System.NotImplementedException(); - //return NativeMethods.SteamAPI_SteamNetworkingIdentity_GetGenericBytes(ref this, out cbLen); - } - - /// See if two identities are identical - public bool Equals(SteamNetworkingIdentity x) { - return NativeMethods.SteamAPI_SteamNetworkingIdentity_IsEqualTo(ref this, ref x); - } - - /// Print to a human-readable string. This is suitable for debug messages - /// or any other time you need to encode the identity as a string. It has a - /// URL-like format (type:<type-data>). Your buffer should be at least - /// k_cchMaxString bytes big to avoid truncation. - /// - /// See also SteamNetworkingIPAddrRender - public void ToString(out string buf) { - IntPtr buf2 = Marshal.AllocHGlobal(k_cchMaxString); - NativeMethods.SteamAPI_SteamNetworkingIdentity_ToString(ref this, buf2, k_cchMaxString); - buf = InteropHelp.PtrToStringUTF8(buf2); - Marshal.FreeHGlobal(buf2); - } - - /// Parse back a string that was generated using ToString. If we don't understand the - /// string, but it looks "reasonable" (it matches the pattern type:<type-data> and doesn't - /// have any funky characters, etc), then we will return true, and the type is set to - /// k_ESteamNetworkingIdentityType_UnknownType. false will only be returned if the string - /// looks invalid. - public bool ParseString(string pszStr) { - using (var pszStr2 = new InteropHelp.UTF8StringHandle(pszStr)) { - return NativeMethods.SteamAPI_SteamNetworkingIdentity_ParseString(ref this, pszStr2); - } - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingIdentity.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingIdentity.cs.meta deleted file mode 100644 index 6227d31..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingIdentity.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 88cd24c900131bb40959f94848afdebe -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingMessage_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingMessage_t.cs deleted file mode 100644 index ca2dc3b..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingMessage_t.cs +++ /dev/null @@ -1,124 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks -{ - /// A message that has been received. - [System.Serializable] - [StructLayout(LayoutKind.Sequential)] - public struct SteamNetworkingMessage_t - { - /// Message payload - public IntPtr m_pData; - - /// Size of the payload. - public int m_cbSize; - - /// For messages received on connections: what connection did this come from? - /// For outgoing messages: what connection to send it to? - /// Not used when using the ISteamNetworkingMessages interface - public HSteamNetConnection m_conn; - - /// For inbound messages: Who sent this to us? - /// For outbound messages on connections: not used. - /// For outbound messages on the ad-hoc ISteamNetworkingMessages interface: who should we send this to? - public SteamNetworkingIdentity m_identityPeer; - - /// For messages received on connections, this is the user data - /// associated with the connection. - /// - /// This is *usually* the same as calling GetConnection() and then - /// fetching the user data associated with that connection, but for - /// the following subtle differences: - /// - /// - This user data will match the connection's user data at the time - /// is captured at the time the message is returned by the API. - /// If you subsequently change the userdata on the connection, - /// this won't be updated. - /// - This is an inline call, so it's *much* faster. - /// - You might have closed the connection, so fetching the user data - /// would not be possible. - /// - /// Not used when sending messages. - public long m_nConnUserData; - - /// Local timestamp when the message was received - /// Not used for outbound messages. - public SteamNetworkingMicroseconds m_usecTimeReceived; - - /// Message number assigned by the sender. This is not used for outbound - /// messages. Note that if multiple lanes are used, each lane has its own - /// message numbers, which are assigned sequentially, so messages from - /// different lanes will share the same numbers. - public long m_nMessageNumber; - - /// Function used to free up m_pData. This mechanism exists so that - /// apps can create messages with buffers allocated from their own - /// heap, and pass them into the library. This function will - /// usually be something like: - /// - /// free( pMsg->m_pData ); - public IntPtr m_pfnFreeData; - - /// Function to used to decrement the internal reference count and, if - /// it's zero, release the message. You should not set this function pointer, - /// or need to access this directly! Use the Release() function instead! - internal IntPtr m_pfnRelease; - - /// When using ISteamNetworkingMessages, the channel number the message was received on - /// (Not used for messages sent or received on "connections") - public int m_nChannel; - - /// Bitmask of k_nSteamNetworkingSend_xxx flags. - /// For received messages, only the k_nSteamNetworkingSend_Reliable bit is valid. - /// For outbound messages, all bits are relevant - public int m_nFlags; - - /// Arbitrary user data that you can use when sending messages using - /// ISteamNetworkingUtils::AllocateMessage and ISteamNetworkingSockets::SendMessage. - /// (The callback you set in m_pfnFreeData might use this field.) - /// - /// Not used for received messages. - public long m_nUserData; - - /// For outbound messages, which lane to use? See ISteamNetworkingSockets::ConfigureConnectionLanes. - /// For inbound messages, what lane was the message received on? - public ushort m_idxLane; - - public ushort _pad1__; - - /// You MUST call this when you're done with the object, - /// to free up memory, etc. - public void Release() { - throw new System.NotImplementedException("Please use the static Release function instead which takes an IntPtr."); - } - - /// You MUST call this when you're done with the object, - /// to free up memory, etc. - /// This is a Steamworks.NET extension. - public static void Release(IntPtr pointer) { - NativeMethods.SteamAPI_SteamNetworkingMessage_t_Release(pointer); - } - - /// Convert an IntPtr received from ISteamNetworkingSockets.ReceiveMessagesOnPollGroup into our structure. - /// This is a Steamworks.NET extension. - public static SteamNetworkingMessage_t FromIntPtr(IntPtr pointer) { - return (SteamNetworkingMessage_t)Marshal.PtrToStructure(pointer, typeof(SteamNetworkingMessage_t)); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingMessage_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingMessage_t.cs.meta deleted file mode 100644 index cc41760..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingMessage_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: be690315b0194d940a0efd3bb3184b90 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingMicroseconds.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingMicroseconds.cs deleted file mode 100644 index f329784..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingMicroseconds.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct SteamNetworkingMicroseconds : System.IEquatable<SteamNetworkingMicroseconds>, System.IComparable<SteamNetworkingMicroseconds> { - public long m_SteamNetworkingMicroseconds; - - public SteamNetworkingMicroseconds(long value) { - m_SteamNetworkingMicroseconds = value; - } - - public override string ToString() { - return m_SteamNetworkingMicroseconds.ToString(); - } - - public override bool Equals(object other) { - return other is SteamNetworkingMicroseconds && this == (SteamNetworkingMicroseconds)other; - } - - public override int GetHashCode() { - return m_SteamNetworkingMicroseconds.GetHashCode(); - } - - public static bool operator ==(SteamNetworkingMicroseconds x, SteamNetworkingMicroseconds y) { - return x.m_SteamNetworkingMicroseconds == y.m_SteamNetworkingMicroseconds; - } - - public static bool operator !=(SteamNetworkingMicroseconds x, SteamNetworkingMicroseconds y) { - return !(x == y); - } - - public static explicit operator SteamNetworkingMicroseconds(long value) { - return new SteamNetworkingMicroseconds(value); - } - - public static explicit operator long(SteamNetworkingMicroseconds that) { - return that.m_SteamNetworkingMicroseconds; - } - - public bool Equals(SteamNetworkingMicroseconds other) { - return m_SteamNetworkingMicroseconds == other.m_SteamNetworkingMicroseconds; - } - - public int CompareTo(SteamNetworkingMicroseconds other) { - return m_SteamNetworkingMicroseconds.CompareTo(other.m_SteamNetworkingMicroseconds); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingMicroseconds.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingMicroseconds.cs.meta deleted file mode 100644 index af5dbad..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingMicroseconds.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e1e21ac0fb80e0646b09d95b609c47ae -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingPOPID.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingPOPID.cs deleted file mode 100644 index 29eb4d2..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingPOPID.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct SteamNetworkingPOPID : System.IEquatable<SteamNetworkingPOPID>, System.IComparable<SteamNetworkingPOPID> { - public uint m_SteamNetworkingPOPID; - - public SteamNetworkingPOPID(uint value) { - m_SteamNetworkingPOPID = value; - } - - public override string ToString() { - return m_SteamNetworkingPOPID.ToString(); - } - - public override bool Equals(object other) { - return other is SteamNetworkingPOPID && this == (SteamNetworkingPOPID)other; - } - - public override int GetHashCode() { - return m_SteamNetworkingPOPID.GetHashCode(); - } - - public static bool operator ==(SteamNetworkingPOPID x, SteamNetworkingPOPID y) { - return x.m_SteamNetworkingPOPID == y.m_SteamNetworkingPOPID; - } - - public static bool operator !=(SteamNetworkingPOPID x, SteamNetworkingPOPID y) { - return !(x == y); - } - - public static explicit operator SteamNetworkingPOPID(uint value) { - return new SteamNetworkingPOPID(value); - } - - public static explicit operator uint(SteamNetworkingPOPID that) { - return that.m_SteamNetworkingPOPID; - } - - public bool Equals(SteamNetworkingPOPID other) { - return m_SteamNetworkingPOPID == other.m_SteamNetworkingPOPID; - } - - public int CompareTo(SteamNetworkingPOPID other) { - return m_SteamNetworkingPOPID.CompareTo(other.m_SteamNetworkingPOPID); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingPOPID.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingPOPID.cs.meta deleted file mode 100644 index aaae57f..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamNetworkingTypes/SteamNetworkingPOPID.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c7173e2ce2d968348a916a5a34f69802 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemotePlay.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemotePlay.meta deleted file mode 100644 index 15eb365..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemotePlay.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 785e5463da50dc044a1885d9ec1ad5b3 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemotePlay/RemotePlaySessionID_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemotePlay/RemotePlaySessionID_t.cs deleted file mode 100644 index 1718da6..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemotePlay/RemotePlaySessionID_t.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct RemotePlaySessionID_t : System.IEquatable<RemotePlaySessionID_t>, System.IComparable<RemotePlaySessionID_t> { - public uint m_RemotePlaySessionID; - - public RemotePlaySessionID_t(uint value) { - m_RemotePlaySessionID = value; - } - - public override string ToString() { - return m_RemotePlaySessionID.ToString(); - } - - public override bool Equals(object other) { - return other is RemotePlaySessionID_t && this == (RemotePlaySessionID_t)other; - } - - public override int GetHashCode() { - return m_RemotePlaySessionID.GetHashCode(); - } - - public static bool operator ==(RemotePlaySessionID_t x, RemotePlaySessionID_t y) { - return x.m_RemotePlaySessionID == y.m_RemotePlaySessionID; - } - - public static bool operator !=(RemotePlaySessionID_t x, RemotePlaySessionID_t y) { - return !(x == y); - } - - public static explicit operator RemotePlaySessionID_t(uint value) { - return new RemotePlaySessionID_t(value); - } - - public static explicit operator uint(RemotePlaySessionID_t that) { - return that.m_RemotePlaySessionID; - } - - public bool Equals(RemotePlaySessionID_t other) { - return m_RemotePlaySessionID == other.m_RemotePlaySessionID; - } - - public int CompareTo(RemotePlaySessionID_t other) { - return m_RemotePlaySessionID.CompareTo(other.m_RemotePlaySessionID); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemotePlay/RemotePlaySessionID_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemotePlay/RemotePlaySessionID_t.cs.meta deleted file mode 100644 index d1db4cf..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemotePlay/RemotePlaySessionID_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4e82598941b6d1a4f8e37e437d646bc7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage.meta deleted file mode 100644 index 954472e..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 32162149a7c3138479f074b56fd5fcbf -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/PublishedFileId_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/PublishedFileId_t.cs deleted file mode 100644 index 940c043..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/PublishedFileId_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct PublishedFileId_t : System.IEquatable<PublishedFileId_t>, System.IComparable<PublishedFileId_t> { - public static readonly PublishedFileId_t Invalid = new PublishedFileId_t(0); - public ulong m_PublishedFileId; - - public PublishedFileId_t(ulong value) { - m_PublishedFileId = value; - } - - public override string ToString() { - return m_PublishedFileId.ToString(); - } - - public override bool Equals(object other) { - return other is PublishedFileId_t && this == (PublishedFileId_t)other; - } - - public override int GetHashCode() { - return m_PublishedFileId.GetHashCode(); - } - - public static bool operator ==(PublishedFileId_t x, PublishedFileId_t y) { - return x.m_PublishedFileId == y.m_PublishedFileId; - } - - public static bool operator !=(PublishedFileId_t x, PublishedFileId_t y) { - return !(x == y); - } - - public static explicit operator PublishedFileId_t(ulong value) { - return new PublishedFileId_t(value); - } - - public static explicit operator ulong(PublishedFileId_t that) { - return that.m_PublishedFileId; - } - - public bool Equals(PublishedFileId_t other) { - return m_PublishedFileId == other.m_PublishedFileId; - } - - public int CompareTo(PublishedFileId_t other) { - return m_PublishedFileId.CompareTo(other.m_PublishedFileId); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/PublishedFileId_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/PublishedFileId_t.cs.meta deleted file mode 100644 index 6739831..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/PublishedFileId_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fd7277dd62d0eb749bf2cb299b2a5c2a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/PublishedFileUpdateHandle_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/PublishedFileUpdateHandle_t.cs deleted file mode 100644 index 1c35446..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/PublishedFileUpdateHandle_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct PublishedFileUpdateHandle_t : System.IEquatable<PublishedFileUpdateHandle_t>, System.IComparable<PublishedFileUpdateHandle_t> { - public static readonly PublishedFileUpdateHandle_t Invalid = new PublishedFileUpdateHandle_t(0xffffffffffffffff); - public ulong m_PublishedFileUpdateHandle; - - public PublishedFileUpdateHandle_t(ulong value) { - m_PublishedFileUpdateHandle = value; - } - - public override string ToString() { - return m_PublishedFileUpdateHandle.ToString(); - } - - public override bool Equals(object other) { - return other is PublishedFileUpdateHandle_t && this == (PublishedFileUpdateHandle_t)other; - } - - public override int GetHashCode() { - return m_PublishedFileUpdateHandle.GetHashCode(); - } - - public static bool operator ==(PublishedFileUpdateHandle_t x, PublishedFileUpdateHandle_t y) { - return x.m_PublishedFileUpdateHandle == y.m_PublishedFileUpdateHandle; - } - - public static bool operator !=(PublishedFileUpdateHandle_t x, PublishedFileUpdateHandle_t y) { - return !(x == y); - } - - public static explicit operator PublishedFileUpdateHandle_t(ulong value) { - return new PublishedFileUpdateHandle_t(value); - } - - public static explicit operator ulong(PublishedFileUpdateHandle_t that) { - return that.m_PublishedFileUpdateHandle; - } - - public bool Equals(PublishedFileUpdateHandle_t other) { - return m_PublishedFileUpdateHandle == other.m_PublishedFileUpdateHandle; - } - - public int CompareTo(PublishedFileUpdateHandle_t other) { - return m_PublishedFileUpdateHandle.CompareTo(other.m_PublishedFileUpdateHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/PublishedFileUpdateHandle_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/PublishedFileUpdateHandle_t.cs.meta deleted file mode 100644 index 73ddb32..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/PublishedFileUpdateHandle_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 430206ab4ee381d4d87a4afa70f5080f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/UGCFileWriteStreamHandle_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/UGCFileWriteStreamHandle_t.cs deleted file mode 100644 index 9318169..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/UGCFileWriteStreamHandle_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct UGCFileWriteStreamHandle_t : System.IEquatable<UGCFileWriteStreamHandle_t>, System.IComparable<UGCFileWriteStreamHandle_t> { - public static readonly UGCFileWriteStreamHandle_t Invalid = new UGCFileWriteStreamHandle_t(0xffffffffffffffff); - public ulong m_UGCFileWriteStreamHandle; - - public UGCFileWriteStreamHandle_t(ulong value) { - m_UGCFileWriteStreamHandle = value; - } - - public override string ToString() { - return m_UGCFileWriteStreamHandle.ToString(); - } - - public override bool Equals(object other) { - return other is UGCFileWriteStreamHandle_t && this == (UGCFileWriteStreamHandle_t)other; - } - - public override int GetHashCode() { - return m_UGCFileWriteStreamHandle.GetHashCode(); - } - - public static bool operator ==(UGCFileWriteStreamHandle_t x, UGCFileWriteStreamHandle_t y) { - return x.m_UGCFileWriteStreamHandle == y.m_UGCFileWriteStreamHandle; - } - - public static bool operator !=(UGCFileWriteStreamHandle_t x, UGCFileWriteStreamHandle_t y) { - return !(x == y); - } - - public static explicit operator UGCFileWriteStreamHandle_t(ulong value) { - return new UGCFileWriteStreamHandle_t(value); - } - - public static explicit operator ulong(UGCFileWriteStreamHandle_t that) { - return that.m_UGCFileWriteStreamHandle; - } - - public bool Equals(UGCFileWriteStreamHandle_t other) { - return m_UGCFileWriteStreamHandle == other.m_UGCFileWriteStreamHandle; - } - - public int CompareTo(UGCFileWriteStreamHandle_t other) { - return m_UGCFileWriteStreamHandle.CompareTo(other.m_UGCFileWriteStreamHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/UGCFileWriteStreamHandle_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/UGCFileWriteStreamHandle_t.cs.meta deleted file mode 100644 index 43a3359..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/UGCFileWriteStreamHandle_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c2ff9e154c69ad847a864b78b6d88ed7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/UGCHandle_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/UGCHandle_t.cs deleted file mode 100644 index 7690ee3..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/UGCHandle_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct UGCHandle_t : System.IEquatable<UGCHandle_t>, System.IComparable<UGCHandle_t> { - public static readonly UGCHandle_t Invalid = new UGCHandle_t(0xffffffffffffffff); - public ulong m_UGCHandle; - - public UGCHandle_t(ulong value) { - m_UGCHandle = value; - } - - public override string ToString() { - return m_UGCHandle.ToString(); - } - - public override bool Equals(object other) { - return other is UGCHandle_t && this == (UGCHandle_t)other; - } - - public override int GetHashCode() { - return m_UGCHandle.GetHashCode(); - } - - public static bool operator ==(UGCHandle_t x, UGCHandle_t y) { - return x.m_UGCHandle == y.m_UGCHandle; - } - - public static bool operator !=(UGCHandle_t x, UGCHandle_t y) { - return !(x == y); - } - - public static explicit operator UGCHandle_t(ulong value) { - return new UGCHandle_t(value); - } - - public static explicit operator ulong(UGCHandle_t that) { - return that.m_UGCHandle; - } - - public bool Equals(UGCHandle_t other) { - return m_UGCHandle == other.m_UGCHandle; - } - - public int CompareTo(UGCHandle_t other) { - return m_UGCHandle.CompareTo(other.m_UGCHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/UGCHandle_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/UGCHandle_t.cs.meta deleted file mode 100644 index 79f344e..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamRemoteStorage/UGCHandle_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0fe3f8688517afd449fb9033615c59f8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamScreenshots.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamScreenshots.meta deleted file mode 100644 index dd65d20..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamScreenshots.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8f2907eea4844294788c7760f70ca3de -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamScreenshots/ScreenshotHandle.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamScreenshots/ScreenshotHandle.cs deleted file mode 100644 index 4ec154c..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamScreenshots/ScreenshotHandle.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct ScreenshotHandle : System.IEquatable<ScreenshotHandle>, System.IComparable<ScreenshotHandle> { - public static readonly ScreenshotHandle Invalid = new ScreenshotHandle(0); - public uint m_ScreenshotHandle; - - public ScreenshotHandle(uint value) { - m_ScreenshotHandle = value; - } - - public override string ToString() { - return m_ScreenshotHandle.ToString(); - } - - public override bool Equals(object other) { - return other is ScreenshotHandle && this == (ScreenshotHandle)other; - } - - public override int GetHashCode() { - return m_ScreenshotHandle.GetHashCode(); - } - - public static bool operator ==(ScreenshotHandle x, ScreenshotHandle y) { - return x.m_ScreenshotHandle == y.m_ScreenshotHandle; - } - - public static bool operator !=(ScreenshotHandle x, ScreenshotHandle y) { - return !(x == y); - } - - public static explicit operator ScreenshotHandle(uint value) { - return new ScreenshotHandle(value); - } - - public static explicit operator uint(ScreenshotHandle that) { - return that.m_ScreenshotHandle; - } - - public bool Equals(ScreenshotHandle other) { - return m_ScreenshotHandle == other.m_ScreenshotHandle; - } - - public int CompareTo(ScreenshotHandle other) { - return m_ScreenshotHandle.CompareTo(other.m_ScreenshotHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamScreenshots/ScreenshotHandle.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamScreenshots/ScreenshotHandle.cs.meta deleted file mode 100644 index 2a7c18b..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamScreenshots/ScreenshotHandle.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1436725e4a2ba6a4499efc2c11c31ece -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes.meta deleted file mode 100644 index 78ae71a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 974997dd55b47904bb658083a2bb24cf -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/AccountID_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/AccountID_t.cs deleted file mode 100644 index 0392ac0..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/AccountID_t.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct AccountID_t : System.IEquatable<AccountID_t>, System.IComparable<AccountID_t> { - public uint m_AccountID; - - public AccountID_t(uint value) { - m_AccountID = value; - } - - public override string ToString() { - return m_AccountID.ToString(); - } - - public override bool Equals(object other) { - return other is AccountID_t && this == (AccountID_t)other; - } - - public override int GetHashCode() { - return m_AccountID.GetHashCode(); - } - - public static bool operator ==(AccountID_t x, AccountID_t y) { - return x.m_AccountID == y.m_AccountID; - } - - public static bool operator !=(AccountID_t x, AccountID_t y) { - return !(x == y); - } - - public static explicit operator AccountID_t(uint value) { - return new AccountID_t(value); - } - - public static explicit operator uint(AccountID_t that) { - return that.m_AccountID; - } - - public bool Equals(AccountID_t other) { - return m_AccountID == other.m_AccountID; - } - - public int CompareTo(AccountID_t other) { - return m_AccountID.CompareTo(other.m_AccountID); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/AccountID_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/AccountID_t.cs.meta deleted file mode 100644 index abbd2c0..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/AccountID_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 14ca323dce9e1d241920cf66187ff942 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/AppId_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/AppId_t.cs deleted file mode 100644 index 8356307..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/AppId_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct AppId_t : System.IEquatable<AppId_t>, System.IComparable<AppId_t> { - public static readonly AppId_t Invalid = new AppId_t(0x0); - public uint m_AppId; - - public AppId_t(uint value) { - m_AppId = value; - } - - public override string ToString() { - return m_AppId.ToString(); - } - - public override bool Equals(object other) { - return other is AppId_t && this == (AppId_t)other; - } - - public override int GetHashCode() { - return m_AppId.GetHashCode(); - } - - public static bool operator ==(AppId_t x, AppId_t y) { - return x.m_AppId == y.m_AppId; - } - - public static bool operator !=(AppId_t x, AppId_t y) { - return !(x == y); - } - - public static explicit operator AppId_t(uint value) { - return new AppId_t(value); - } - - public static explicit operator uint(AppId_t that) { - return that.m_AppId; - } - - public bool Equals(AppId_t other) { - return m_AppId == other.m_AppId; - } - - public int CompareTo(AppId_t other) { - return m_AppId.CompareTo(other.m_AppId); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/AppId_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/AppId_t.cs.meta deleted file mode 100644 index 7befb10..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/AppId_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 257b639b116e86d48b55f02ffb69fe8f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/DepotId_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/DepotId_t.cs deleted file mode 100644 index 9bab73f..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/DepotId_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct DepotId_t : System.IEquatable<DepotId_t>, System.IComparable<DepotId_t> { - public static readonly DepotId_t Invalid = new DepotId_t(0x0); - public uint m_DepotId; - - public DepotId_t(uint value) { - m_DepotId = value; - } - - public override string ToString() { - return m_DepotId.ToString(); - } - - public override bool Equals(object other) { - return other is DepotId_t && this == (DepotId_t)other; - } - - public override int GetHashCode() { - return m_DepotId.GetHashCode(); - } - - public static bool operator ==(DepotId_t x, DepotId_t y) { - return x.m_DepotId == y.m_DepotId; - } - - public static bool operator !=(DepotId_t x, DepotId_t y) { - return !(x == y); - } - - public static explicit operator DepotId_t(uint value) { - return new DepotId_t(value); - } - - public static explicit operator uint(DepotId_t that) { - return that.m_DepotId; - } - - public bool Equals(DepotId_t other) { - return m_DepotId == other.m_DepotId; - } - - public int CompareTo(DepotId_t other) { - return m_DepotId.CompareTo(other.m_DepotId); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/DepotId_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/DepotId_t.cs.meta deleted file mode 100644 index 0ee2f1c..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/DepotId_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d6f3da1acbe8e0245af0a17e34591226 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/PartyBeaconID_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/PartyBeaconID_t.cs deleted file mode 100644 index b32e45f..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/PartyBeaconID_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct PartyBeaconID_t : System.IEquatable<PartyBeaconID_t>, System.IComparable<PartyBeaconID_t> { - public static readonly PartyBeaconID_t Invalid = new PartyBeaconID_t(0); - public ulong m_PartyBeaconID; - - public PartyBeaconID_t(ulong value) { - m_PartyBeaconID = value; - } - - public override string ToString() { - return m_PartyBeaconID.ToString(); - } - - public override bool Equals(object other) { - return other is PartyBeaconID_t && this == (PartyBeaconID_t)other; - } - - public override int GetHashCode() { - return m_PartyBeaconID.GetHashCode(); - } - - public static bool operator ==(PartyBeaconID_t x, PartyBeaconID_t y) { - return x.m_PartyBeaconID == y.m_PartyBeaconID; - } - - public static bool operator !=(PartyBeaconID_t x, PartyBeaconID_t y) { - return !(x == y); - } - - public static explicit operator PartyBeaconID_t(ulong value) { - return new PartyBeaconID_t(value); - } - - public static explicit operator ulong(PartyBeaconID_t that) { - return that.m_PartyBeaconID; - } - - public bool Equals(PartyBeaconID_t other) { - return m_PartyBeaconID == other.m_PartyBeaconID; - } - - public int CompareTo(PartyBeaconID_t other) { - return m_PartyBeaconID.CompareTo(other.m_PartyBeaconID); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/PartyBeaconID_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/PartyBeaconID_t.cs.meta deleted file mode 100644 index 72eca38..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/PartyBeaconID_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0df4c6d3bca0df246a4cbca1bb730270 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/RTime32.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/RTime32.cs deleted file mode 100644 index 249dda2..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/RTime32.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct RTime32 : System.IEquatable<RTime32>, System.IComparable<RTime32> { - public uint m_RTime32; - - public RTime32(uint value) { - m_RTime32 = value; - } - - public override string ToString() { - return m_RTime32.ToString(); - } - - public override bool Equals(object other) { - return other is RTime32 && this == (RTime32)other; - } - - public override int GetHashCode() { - return m_RTime32.GetHashCode(); - } - - public static bool operator ==(RTime32 x, RTime32 y) { - return x.m_RTime32 == y.m_RTime32; - } - - public static bool operator !=(RTime32 x, RTime32 y) { - return !(x == y); - } - - public static explicit operator RTime32(uint value) { - return new RTime32(value); - } - - public static explicit operator uint(RTime32 that) { - return that.m_RTime32; - } - - public bool Equals(RTime32 other) { - return m_RTime32 == other.m_RTime32; - } - - public int CompareTo(RTime32 other) { - return m_RTime32.CompareTo(other.m_RTime32); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/RTime32.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/RTime32.cs.meta deleted file mode 100644 index 1fa316a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/RTime32.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3da8b25ad32a0794286fc4770816b72b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/SteamAPICall_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/SteamAPICall_t.cs deleted file mode 100644 index c104f14..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/SteamAPICall_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct SteamAPICall_t : System.IEquatable<SteamAPICall_t>, System.IComparable<SteamAPICall_t> { - public static readonly SteamAPICall_t Invalid = new SteamAPICall_t(0x0); - public ulong m_SteamAPICall; - - public SteamAPICall_t(ulong value) { - m_SteamAPICall = value; - } - - public override string ToString() { - return m_SteamAPICall.ToString(); - } - - public override bool Equals(object other) { - return other is SteamAPICall_t && this == (SteamAPICall_t)other; - } - - public override int GetHashCode() { - return m_SteamAPICall.GetHashCode(); - } - - public static bool operator ==(SteamAPICall_t x, SteamAPICall_t y) { - return x.m_SteamAPICall == y.m_SteamAPICall; - } - - public static bool operator !=(SteamAPICall_t x, SteamAPICall_t y) { - return !(x == y); - } - - public static explicit operator SteamAPICall_t(ulong value) { - return new SteamAPICall_t(value); - } - - public static explicit operator ulong(SteamAPICall_t that) { - return that.m_SteamAPICall; - } - - public bool Equals(SteamAPICall_t other) { - return m_SteamAPICall == other.m_SteamAPICall; - } - - public int CompareTo(SteamAPICall_t other) { - return m_SteamAPICall.CompareTo(other.m_SteamAPICall); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/SteamAPICall_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/SteamAPICall_t.cs.meta deleted file mode 100644 index b9cd2c1..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/SteamAPICall_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f7bf82421c480484aa48595885f6f133 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/SteamIPAddress_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/SteamIPAddress_t.cs deleted file mode 100644 index a815682..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/SteamIPAddress_t.cs +++ /dev/null @@ -1,97 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks -{ - [System.Serializable] - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct SteamIPAddress_t - { - private long m_ip0; - private long m_ip1; - - private ESteamIPType m_eType; - - public SteamIPAddress_t(System.Net.IPAddress iPAddress) - { - byte[] bytes = iPAddress.GetAddressBytes(); - switch (iPAddress.AddressFamily) - { - case System.Net.Sockets.AddressFamily.InterNetwork: - { - if (bytes.Length != 4) - { - throw new System.TypeInitializationException("SteamIPAddress_t: Unexpected byte length for Ipv4." + bytes.Length, null); - } - - m_ip0 = (bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]; - m_ip1 = 0; - m_eType = ESteamIPType.k_ESteamIPTypeIPv4; - break; - } - case System.Net.Sockets.AddressFamily.InterNetworkV6: - { - if (bytes.Length != 16) - { - throw new System.TypeInitializationException("SteamIPAddress_t: Unexpected byte length for Ipv6: " + bytes.Length, null); - } - - m_ip0 = (bytes[1] << 56) | (bytes[0] << 48) | (bytes[3] << 40) | (bytes[2] << 32) | (bytes[5] << 24) | (bytes[4] << 16) | (bytes[7] << 8) | bytes[6]; - m_ip1 = (bytes[9] << 56) | (bytes[8] << 48) | (bytes[11] << 40) | (bytes[10] << 32) | (bytes[13] << 24) | (bytes[12] << 16) | (bytes[15] << 8) | bytes[14]; - m_eType = ESteamIPType.k_ESteamIPTypeIPv6; - break; - } - default: - { - throw new System.TypeInitializationException("SteamIPAddress_t: Unexpected address family " + iPAddress.AddressFamily, null); - } - } - } - - public System.Net.IPAddress ToIPAddress() - { - if (m_eType == ESteamIPType.k_ESteamIPTypeIPv4) - { - byte[] bytes = System.BitConverter.GetBytes(m_ip0); - return new System.Net.IPAddress(new byte[] { bytes[3], bytes[2], bytes[1], bytes[0] }); - } - else - { - byte[] bytes = new byte[16]; - System.BitConverter.GetBytes(m_ip0).CopyTo(bytes, 0); - System.BitConverter.GetBytes(m_ip1).CopyTo(bytes, 8); - return new System.Net.IPAddress(bytes); - } - } - - public override string ToString() - { - return ToIPAddress().ToString(); - } - - public ESteamIPType GetIPType() - { - return m_eType; - } - - public bool IsSet() - { - return m_ip0 != 0 || m_ip1 != 0; - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/SteamIPAddress_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/SteamIPAddress_t.cs.meta deleted file mode 100644 index cf5aa98..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamTypes/SteamIPAddress_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e4fa66c7d10afeb438394cd486f094d8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC.meta deleted file mode 100644 index 1f5d7d5..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 99134a34a0d89cc46a5397ffa2081668 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC/UGCQueryHandle_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC/UGCQueryHandle_t.cs deleted file mode 100644 index 334d2e8..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC/UGCQueryHandle_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct UGCQueryHandle_t : System.IEquatable<UGCQueryHandle_t>, System.IComparable<UGCQueryHandle_t> { - public static readonly UGCQueryHandle_t Invalid = new UGCQueryHandle_t(0xffffffffffffffff); - public ulong m_UGCQueryHandle; - - public UGCQueryHandle_t(ulong value) { - m_UGCQueryHandle = value; - } - - public override string ToString() { - return m_UGCQueryHandle.ToString(); - } - - public override bool Equals(object other) { - return other is UGCQueryHandle_t && this == (UGCQueryHandle_t)other; - } - - public override int GetHashCode() { - return m_UGCQueryHandle.GetHashCode(); - } - - public static bool operator ==(UGCQueryHandle_t x, UGCQueryHandle_t y) { - return x.m_UGCQueryHandle == y.m_UGCQueryHandle; - } - - public static bool operator !=(UGCQueryHandle_t x, UGCQueryHandle_t y) { - return !(x == y); - } - - public static explicit operator UGCQueryHandle_t(ulong value) { - return new UGCQueryHandle_t(value); - } - - public static explicit operator ulong(UGCQueryHandle_t that) { - return that.m_UGCQueryHandle; - } - - public bool Equals(UGCQueryHandle_t other) { - return m_UGCQueryHandle == other.m_UGCQueryHandle; - } - - public int CompareTo(UGCQueryHandle_t other) { - return m_UGCQueryHandle.CompareTo(other.m_UGCQueryHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC/UGCQueryHandle_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC/UGCQueryHandle_t.cs.meta deleted file mode 100644 index f8e5992..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC/UGCQueryHandle_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9b5f5b5e4cd20e84fbd48cc6ec0065ab -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC/UGCUpdateHandle_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC/UGCUpdateHandle_t.cs deleted file mode 100644 index d56be97..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC/UGCUpdateHandle_t.cs +++ /dev/null @@ -1,65 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct UGCUpdateHandle_t : System.IEquatable<UGCUpdateHandle_t>, System.IComparable<UGCUpdateHandle_t> { - public static readonly UGCUpdateHandle_t Invalid = new UGCUpdateHandle_t(0xffffffffffffffff); - public ulong m_UGCUpdateHandle; - - public UGCUpdateHandle_t(ulong value) { - m_UGCUpdateHandle = value; - } - - public override string ToString() { - return m_UGCUpdateHandle.ToString(); - } - - public override bool Equals(object other) { - return other is UGCUpdateHandle_t && this == (UGCUpdateHandle_t)other; - } - - public override int GetHashCode() { - return m_UGCUpdateHandle.GetHashCode(); - } - - public static bool operator ==(UGCUpdateHandle_t x, UGCUpdateHandle_t y) { - return x.m_UGCUpdateHandle == y.m_UGCUpdateHandle; - } - - public static bool operator !=(UGCUpdateHandle_t x, UGCUpdateHandle_t y) { - return !(x == y); - } - - public static explicit operator UGCUpdateHandle_t(ulong value) { - return new UGCUpdateHandle_t(value); - } - - public static explicit operator ulong(UGCUpdateHandle_t that) { - return that.m_UGCUpdateHandle; - } - - public bool Equals(UGCUpdateHandle_t other) { - return m_UGCUpdateHandle == other.m_UGCUpdateHandle; - } - - public int CompareTo(UGCUpdateHandle_t other) { - return m_UGCUpdateHandle.CompareTo(other.m_UGCUpdateHandle); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC/UGCUpdateHandle_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC/UGCUpdateHandle_t.cs.meta deleted file mode 100644 index 18a1457..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUGC/UGCUpdateHandle_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 90d7e94aac0e4fd48be2447dd81e86f7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats.meta deleted file mode 100644 index 8e641a4..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2a737c8870eef534dbb2bd2e1627d83a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats/SteamLeaderboardEntries_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats/SteamLeaderboardEntries_t.cs deleted file mode 100644 index 17080e4..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats/SteamLeaderboardEntries_t.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct SteamLeaderboardEntries_t : System.IEquatable<SteamLeaderboardEntries_t>, System.IComparable<SteamLeaderboardEntries_t> { - public ulong m_SteamLeaderboardEntries; - - public SteamLeaderboardEntries_t(ulong value) { - m_SteamLeaderboardEntries = value; - } - - public override string ToString() { - return m_SteamLeaderboardEntries.ToString(); - } - - public override bool Equals(object other) { - return other is SteamLeaderboardEntries_t && this == (SteamLeaderboardEntries_t)other; - } - - public override int GetHashCode() { - return m_SteamLeaderboardEntries.GetHashCode(); - } - - public static bool operator ==(SteamLeaderboardEntries_t x, SteamLeaderboardEntries_t y) { - return x.m_SteamLeaderboardEntries == y.m_SteamLeaderboardEntries; - } - - public static bool operator !=(SteamLeaderboardEntries_t x, SteamLeaderboardEntries_t y) { - return !(x == y); - } - - public static explicit operator SteamLeaderboardEntries_t(ulong value) { - return new SteamLeaderboardEntries_t(value); - } - - public static explicit operator ulong(SteamLeaderboardEntries_t that) { - return that.m_SteamLeaderboardEntries; - } - - public bool Equals(SteamLeaderboardEntries_t other) { - return m_SteamLeaderboardEntries == other.m_SteamLeaderboardEntries; - } - - public int CompareTo(SteamLeaderboardEntries_t other) { - return m_SteamLeaderboardEntries.CompareTo(other.m_SteamLeaderboardEntries); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats/SteamLeaderboardEntries_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats/SteamLeaderboardEntries_t.cs.meta deleted file mode 100644 index 5b8dd5a..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats/SteamLeaderboardEntries_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2f59bfdaf96f5324589e1302cdd36cb6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats/SteamLeaderboard_t.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats/SteamLeaderboard_t.cs deleted file mode 100644 index a68367c..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats/SteamLeaderboard_t.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct SteamLeaderboard_t : System.IEquatable<SteamLeaderboard_t>, System.IComparable<SteamLeaderboard_t> { - public ulong m_SteamLeaderboard; - - public SteamLeaderboard_t(ulong value) { - m_SteamLeaderboard = value; - } - - public override string ToString() { - return m_SteamLeaderboard.ToString(); - } - - public override bool Equals(object other) { - return other is SteamLeaderboard_t && this == (SteamLeaderboard_t)other; - } - - public override int GetHashCode() { - return m_SteamLeaderboard.GetHashCode(); - } - - public static bool operator ==(SteamLeaderboard_t x, SteamLeaderboard_t y) { - return x.m_SteamLeaderboard == y.m_SteamLeaderboard; - } - - public static bool operator !=(SteamLeaderboard_t x, SteamLeaderboard_t y) { - return !(x == y); - } - - public static explicit operator SteamLeaderboard_t(ulong value) { - return new SteamLeaderboard_t(value); - } - - public static explicit operator ulong(SteamLeaderboard_t that) { - return that.m_SteamLeaderboard; - } - - public bool Equals(SteamLeaderboard_t other) { - return m_SteamLeaderboard == other.m_SteamLeaderboard; - } - - public int CompareTo(SteamLeaderboard_t other) { - return m_SteamLeaderboard.CompareTo(other.m_SteamLeaderboard); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats/SteamLeaderboard_t.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats/SteamLeaderboard_t.cs.meta deleted file mode 100644 index c809d5e..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/SteamUserStats/SteamLeaderboard_t.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 32228d2b055627c439306ea877bb2cef -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common.meta deleted file mode 100644 index b740c91..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: cef32dd326c9ccd4386e5df0302100e3 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common/HSteamPipe.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common/HSteamPipe.cs deleted file mode 100644 index ad4b7d2..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common/HSteamPipe.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct HSteamPipe : System.IEquatable<HSteamPipe>, System.IComparable<HSteamPipe> { - public int m_HSteamPipe; - - public HSteamPipe(int value) { - m_HSteamPipe = value; - } - - public override string ToString() { - return m_HSteamPipe.ToString(); - } - - public override bool Equals(object other) { - return other is HSteamPipe && this == (HSteamPipe)other; - } - - public override int GetHashCode() { - return m_HSteamPipe.GetHashCode(); - } - - public static bool operator ==(HSteamPipe x, HSteamPipe y) { - return x.m_HSteamPipe == y.m_HSteamPipe; - } - - public static bool operator !=(HSteamPipe x, HSteamPipe y) { - return !(x == y); - } - - public static explicit operator HSteamPipe(int value) { - return new HSteamPipe(value); - } - - public static explicit operator int(HSteamPipe that) { - return that.m_HSteamPipe; - } - - public bool Equals(HSteamPipe other) { - return m_HSteamPipe == other.m_HSteamPipe; - } - - public int CompareTo(HSteamPipe other) { - return m_HSteamPipe.CompareTo(other.m_HSteamPipe); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common/HSteamPipe.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common/HSteamPipe.cs.meta deleted file mode 100644 index 1b06e2f..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common/HSteamPipe.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 673a35c06ba2f3547bc0739d23c97ac7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common/HSteamUser.cs b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common/HSteamUser.cs deleted file mode 100644 index a7fb2dd..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common/HSteamUser.cs +++ /dev/null @@ -1,64 +0,0 @@ -// This file is provided under The MIT License as part of Steamworks.NET. -// Copyright (c) 2013-2022 Riley Labrecque -// Please see the included LICENSE.txt for additional information. - -// This file is automatically generated. -// Changes to this file will be reverted when you update Steamworks.NET - -#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) - #define DISABLESTEAMWORKS -#endif - -#if !DISABLESTEAMWORKS - -using System.Runtime.InteropServices; -using IntPtr = System.IntPtr; - -namespace Steamworks { - [System.Serializable] - public struct HSteamUser : System.IEquatable<HSteamUser>, System.IComparable<HSteamUser> { - public int m_HSteamUser; - - public HSteamUser(int value) { - m_HSteamUser = value; - } - - public override string ToString() { - return m_HSteamUser.ToString(); - } - - public override bool Equals(object other) { - return other is HSteamUser && this == (HSteamUser)other; - } - - public override int GetHashCode() { - return m_HSteamUser.GetHashCode(); - } - - public static bool operator ==(HSteamUser x, HSteamUser y) { - return x.m_HSteamUser == y.m_HSteamUser; - } - - public static bool operator !=(HSteamUser x, HSteamUser y) { - return !(x == y); - } - - public static explicit operator HSteamUser(int value) { - return new HSteamUser(value); - } - - public static explicit operator int(HSteamUser that) { - return that.m_HSteamUser; - } - - public bool Equals(HSteamUser other) { - return m_HSteamUser == other.m_HSteamUser; - } - - public int CompareTo(HSteamUser other) { - return m_HSteamUser.CompareTo(other.m_HSteamUser); - } - } -} - -#endif // !DISABLESTEAMWORKS diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common/HSteamUser.cs.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common/HSteamUser.cs.meta deleted file mode 100644 index 947c713..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/Runtime/types/Steam_api_common/HSteamUser.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c2784c0d3f1bcd54493a2b76dd8972a1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/package.json b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/package.json deleted file mode 100644 index 85c70ec..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "com.rlabrecque.steamworks.net", - "displayName": "Steamworks.NET", - "version": "20.2.0", - "unity": "2019.4", - "author": { - "name": "Riley Labrecque", - "email": "support@rileylabrecque.com", - "url": "https://steamworks.github.io" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/rlabrecque/Steamworks.NET.git?path=/com.rlabrecque.steamworks.net" - }, - "keywords": [ - "steam", - "steamworks" - ], - "description": "Steamworks.NET is a C# Wrapper for Valve's Steamworks API." -} diff --git a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/package.json.meta b/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/package.json.meta deleted file mode 100644 index e9484ea..0000000 --- a/MultiplayerToolkit/Assets/com.rlabrecque.steamworks.net/package.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f9b6ad16257b2144c906eed15ad9f51e -PackageManifestImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2.zip b/Tools/Facepunch.Steamworks.2.3.2.zip Binary files differnew file mode 100644 index 0000000..8be5349 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2.zip diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.dll b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.dll Binary files differnew file mode 100644 index 0000000..6901913 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.dll diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.dll.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.dll.meta new file mode 100644 index 0000000..1e31fb9 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: fc89a528dd38bd04a90af929e9c0f80e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 0 + Exclude Linux64: 0 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: OSX + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.pdb b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.pdb Binary files differnew file mode 100644 index 0000000..4590cb5 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.pdb diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.pdb.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.pdb.meta new file mode 100644 index 0000000..38f5017 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 70840efe0f145064cbb0b568f11d7ff5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.xml b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.xml new file mode 100644 index 0000000..414ee29 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.xml @@ -0,0 +1,3474 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Facepunch.Steamworks.Posix</name> + </assembly> + <members> + <member name="T:Steamworks.CallResult`1"> + <summary> + An awaitable version of a SteamAPICall_t + </summary> + </member> + <member name="M:Steamworks.CallResult`1.OnCompleted(System.Action)"> + <summary> + This gets called if IsComplete returned false on the first call. + The Action "continues" the async call. We pass it to the Dispatch + to be called when the callback returns. + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetResult"> + <summary> + Gets the result. This is called internally by the async shit. + </summary> + </member> + <member name="P:Steamworks.CallResult`1.IsCompleted"> + <summary> + Return true if complete or failed + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetAwaiter"> + <summary> + This is what makes this struct awaitable + </summary> + </member> + <member name="T:Steamworks.ICallbackData"> + <summary> + Gives us a generic way to get the CallbackId of structs + </summary> + </member> + <member name="M:Steamworks.AuthTicket.Cancel"> + <summary> + Cancels a ticket. + You should cancel your ticket when you close the game or leave a server. + </summary> + </member> + <member name="T:Steamworks.Dispatch"> + <summary> + Responsible for all callback/callresult handling + + This manually pumps Steam's message queue and dispatches those + events to any waiting callbacks/callresults. + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnDebugCallback"> + <summary> + If set then we'll call this function every time a callback is generated. + + This is SLOW!! - it's for debugging - don't keep it on all the time. If you want to access a specific + callback then please create an issue on github and I'll add it! + + Params are : [Callback Type] [Callback Contents] [server] + + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnException"> + <summary> + Called if an exception happens during a callback/callresult. + This is needed because the exception isn't always accessible when running + async.. and can fail silently. With this hooked you won't be stuck wondering + what happened. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Init"> + <summary> + This gets called from Client/Server Init + It's important to switch to the manual dispatcher + </summary> + </member> + <member name="F:Steamworks.Dispatch.runningFrame"> + <summary> + Make sure we don't call Frame in a callback - because that'll cause some issues for everyone. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Frame(Steamworks.Data.HSteamPipe)"> + <summary> + Calls RunFrame and processes events from this Steam Pipe + </summary> + </member> + <member name="F:Steamworks.Dispatch.actionsToCall"> + <summary> + To be safe we don't call the continuation functions while iterating + the Callback list. This is maybe overly safe because the only way this + could be an issue is if the callback list is modified in the continuation + which would only happen if starting or shutting down in the callback. + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessCallback(Steamworks.Dispatch.CallbackMsg_t,System.Boolean)"> + <summary> + A callback is a general global message + </summary> + </member> + <member name="M:Steamworks.Dispatch.CallbackToString(Steamworks.CallbackType,System.IntPtr,System.Int32)"> + <summary> + Given a callback, try to turn it into a string + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessResult(Steamworks.Dispatch.CallbackMsg_t)"> + <summary> + A result is a reply to a specific command + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopClientAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopServerAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.OnCallComplete``1(Steamworks.Data.SteamAPICall_t,System.Action,System.Boolean)"> + <summary> + Watch for a steam api call + </summary> + </member> + <member name="M:Steamworks.Dispatch.Install``1(System.Action{``0},System.Boolean)"> + <summary> + Install a global callback. The passed function will get called if it's all good. + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.Numeric"> + <summary> + The score is just a simple numerical value + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeSeconds"> + <summary> + The score represents a time, in seconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeMilliSeconds"> + <summary> + The score represents a time, in milliseconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Ascending"> + <summary> + The top-score is the lowest number + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Descending"> + <summary> + The top-score is the highest number + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Unreliable"> + <summary> + Send the message unreliably. Can be lost. Messages *can* be larger than a + single MTU (UDP packet), but there is no retransmission, so if any piece + of the message is lost, the entire message will be dropped. + + The sending API does have some knowledge of the underlying connection, so + if there is no NAT-traversal accomplished or there is a recognized adjustment + happening on the connection, the packet will be batched until the connection + is open again. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoNagle"> + <summary> + Disable Nagle's algorithm. + By default, Nagle's algorithm is applied to all outbound messages. This means + that the message will NOT be sent immediately, in case further messages are + sent soon after you send this, which can be grouped together. Any time there + is enough buffered data to fill a packet, the packets will be pushed out immediately, + but partially-full packets not be sent until the Nagle timer expires. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoDelay"> + <summary> + If the message cannot be sent very soon (because the connection is still doing some initial + handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable + messages. Using this flag on reliable messages is invalid. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Reliable"> + Reliable message send. Can send up to 0.5mb in a single message. + Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for + efficient sends of large chunks of data. + </member> + <member name="P:Steamworks.Data.NetIdentity.LocalHost"> + <summary> + Return a NetIdentity that represents LocalHost + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.IsLocalHost"> + <summary> + Return true if this identity is localhost + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.SteamId)~Steamworks.Data.NetIdentity"> + <summary> + Convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetAddress)~Steamworks.Data.NetIdentity"> + <summary> + Set the specified Address + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetIdentity)~Steamworks.SteamId"> + <summary> + Automatically convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="P:Steamworks.Data.NetIdentity.SteamId"> + <summary> + Returns NULL if we're not a SteamId + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.Address"> + <summary> + Returns NULL if we're not a NetAddress + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.ToString"> + <summary> + We override tostring to provide a sensible representation + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Port"> + <summary> + The Port. This is redundant documentation. + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.AnyIp(System.UInt16)"> + <summary> + Any IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.LocalHost(System.UInt16)"> + <summary> + Localhost IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.String,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.Net.IPAddress,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Cleared"> + <summary> + Set everything to zero + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv6AllZeros"> + <summary> + Return true if the IP is ::0. (Doesn't check port.) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv4"> + <summary> + Return true if IP is mapped IPv4 + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsLocalHost"> + <summary> + Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Address"> + <summary> + Get the Address section + </summary> + </member> + <member name="T:Steamworks.Data.Connection"> + <summary> + Used as a base to create your client connection. This creates a socket + to a single connection. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Accept"> + <summary> + Accept an incoming connection that has been received on a listen socket. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Close(System.Boolean,System.Int32,System.String)"> + <summary> + Disconnects from the remote host and invalidates the connection handle. Any unread data on the connection is discarded.. + reasonCode is defined and used by you. + </summary> + </member> + <member name="P:Steamworks.Data.Connection.UserData"> + <summary> + Get/Set connection user data + </summary> + </member> + <member name="P:Steamworks.Data.Connection.ConnectionName"> + <summary> + A name for the connection, used mostly for debugging + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.IntPtr,System.Int32,Steamworks.Data.SendType)"> + <summary> + This is the best version to use. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],System.Int32,System.Int32,Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.String,Steamworks.Data.SendType)"> + <summary> + This creates a ton of garbage - so don't do anything with this beyond testing! + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Flush"> + <summary> + Flush any messages waiting on the Nagle timer and send them at the next transmission + opportunity (often that means right now). + </summary> + </member> + <member name="M:Steamworks.Data.Connection.DetailedStatus"> + <summary> + Returns detailed connection stats in text format. Useful + for dumping to a log, etc. + </summary> + <returns>Plain text connection info</returns> + </member> + <member name="T:Steamworks.Data.ConnectionInfo"> + <summary> + Describe the state of a connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.State"> + <summary> + High level state of the connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Address"> + <summary> + Remote address. Might be all 0's if we don't know it, or if this is N/A. + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Identity"> + <summary> + Who is on the other end? Depending on the connection type and phase of the connection, we might not know + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.EndReason"> + <summary> + Basic cause of the connection termination or problem. + </summary> + </member> + <member name="T:Steamworks.Data.NetPingLocation"> + <summary> + + Object that describes a "location" on the Internet with sufficient + detail that we can reasonably estimate an upper bound on the ping between + the two hosts, even if a direct route between the hosts is not possible, + and the connection must be routed through the Steam Datagram Relay network. + This does not contain any information that identifies the host. Indeed, + if two hosts are in the same building or otherwise have nearly identical + networking characteristics, then it's valid to use the same location + object for both of them. + + NOTE: This object should only be used in the same process! Do not serialize it, + send it over the wire, or persist it in a file or database! If you need + to do that, convert it to a string representation using the methods in + ISteamNetworkingUtils(). + + </summary> + </member> + <member name="M:Steamworks.Data.NetPingLocation.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + Estimate the round-trip latency between two arbitrary locations, in + milliseconds. This is a conservative estimate, based on routing through + the relay network. For most basic relayed connections, this ping time + will be pretty accurate, since it will be based on the route likely to + be actually used. + + If a direct IP route is used (perhaps via NAT traversal), then the route + will be different, and the ping time might be better. Or it might actually + be a bit worse! Standard IP routing is frequently suboptimal! + + But even in this case, the estimate obtained using this method is a + reasonable upper bound on the ping time. (Also it has the advantage + of returning immediately and not sending any packets.) + + In a few cases we might not able to estimate the route. In this case + a negative value is returned. k_nSteamNetworkingPing_Failed means + the reason was because of some networking difficulty. (Failure to + ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + currently answer the question for some other reason. + + Do you need to be able to do this from a backend/matchmaking server? + You are looking for the "ticketgen" library. + </member> + <member name="M:Steamworks.Data.Socket.Close"> + <summary> + Destroy a listen socket. All the connections that were accepting on the listen + socket are closed ungracefully. + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.State"> + <summary> + True if unlocked + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.UnlockTime"> + <summary> + Should hold the unlock time if State is true + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIcon"> + <summary> + Gets the icon of the achievement. This can return a null image even though the image exists if the image + hasn't been downloaded by Steam yet. You can use GetIconAsync if you want to wait for the image to be downloaded. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIconAsync(System.Int32)"> + <summary> + Gets the icon of the achievement, waits for it to load if we have to + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.GlobalUnlocked"> + <summary> + Returns the fraction (0-1) of users who have unlocked the specified achievement, or -1 if no data available. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Trigger(System.Boolean)"> + <summary> + Make this achievement earned + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Clear"> + <summary> + Reset this achievement to not achieved + </summary> + </member> + <member name="T:Steamworks.Data.DurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Appid"> + <summary> + appid generating playtime + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Applicable"> + <summary> + is duration control applicable to user + game combination + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeInLastFiveHours"> + <summary> + playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeToday"> + <summary> + playtime on current calendar day + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Progress"> + <summary> + recommended progress + </summary> + </member> + <member name="P:Steamworks.Data.Leaderboard.Name"> + <summary> + the name of a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.ReplaceScore(System.Int32,System.Int32[])"> + <summary> + Submit your score and replace your old score even if it was better + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.SubmitScoreAsync(System.Int32,System.Int32[])"> + <summary> + Submit your new score, but won't replace your high score if it's lower + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.AttachUgc(Steamworks.Data.Ugc)"> + <summary> + Attaches a piece of user generated content the user's entry on a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAsync(System.Int32,System.Int32)"> + <summary> + Used to query for a sequential range of leaderboard entries by leaderboard Sort. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAroundUserAsync(System.Int32,System.Int32)"> + <summary> + Used to retrieve leaderboard entries relative a user's entry. If there are not enough entries in the leaderboard + before or after the user's entry, Steam will adjust the range to try to return the number of entries requested. + For example, if the user is #1 on the leaderboard and start is set to -2, end is set to 2, Steam will return the first + 5 entries in the leaderboard. If The current user has no entry, this will return null. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresFromFriendsAsync"> + <summary> + Used to retrieve all leaderboard entries for friends of the current user + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Join"> + <summary> + Try to join this room. Will return RoomEnter.Success on success, + and anything else is a failure + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Leave"> + <summary> + Leave a lobby; this will take effect immediately on the client side + other users in the lobby will be notified by a LobbyChatUpdate_t callback + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.InviteFriend(Steamworks.SteamId)"> + <summary> + Invite another user to the lobby + will return true if the invite is successfully sent, whether or not the target responds + returns false if the local user is not connected to the Steam servers + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MemberCount"> + <summary> + returns the number of users in the specified lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Members"> + <summary> + Returns current members. Need to be in the lobby to see the users. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetData(System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetData(System.String,System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.DeleteData(System.String)"> + <summary> + Removes a metadata key from the lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Data"> + <summary> + Get all data for this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetMemberData(Steamworks.Friend,System.String)"> + <summary> + Gets per-user metadata for someone in this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetMemberData(System.String,System.String)"> + <summary> + Sets per-user metadata (for the local user implicitly) + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatString(System.String)"> + <summary> + Sends a string to the chat room + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatBytes(System.Byte[])"> + <summary> + Sends bytes the the chat room + this isn't exposed because there's no way to read raw bytes atm, + and I figure people can send json if they want something more advanced + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Refresh"> + <summary> + Refreshes metadata for a lobby you're not necessarily in right now + you never do this for lobbies you're a member of, only if your + this will send down all the metadata associated with a lobby + this is an asynchronous call + returns false if the local user is not connected to the Steam servers + results will be returned by a LobbyDataUpdate_t callback + if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MaxMembers"> + <summary> + Max members able to join this lobby. Cannot be over 250. + Can only be set by the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(Steamworks.SteamId)"> + <summary> + [SteamID variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(System.String,System.UInt16)"> + <summary> + [IP/Port variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetGameServer(System.UInt32@,System.UInt16@,Steamworks.SteamId@)"> + <summary> + Gets the details of the lobby's game server, if set. Returns true if the lobby is + valid and has a server set, otherwise returns false. + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Owner"> + <summary> + You must be the lobby owner to set the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.IsOwnedBy(Steamworks.SteamId)"> + <summary> + Check if the specified SteamId owns the lobby + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceClose"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceFar"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceWorldwide"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithKeyValue(System.String,System.String)"> + <summary> + Filter by specified key/value pair; string parameters + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithLower(System.String,System.Int32)"> + <summary> + Numerical filter where value is less than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithHigher(System.String,System.Int32)"> + <summary> + Numerical filter where value is greater than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must be equal to the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithNotEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must not equal the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.AddNumericalFilter(System.String,System.Int32,Steamworks.LobbyComparison)"> + <summary> + Test key, initialize numerical filter list if necessary, then add new numerical filter + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.OrderByNear(System.String,System.Int32)"> + <summary> + Order filtered results according to key/values nearest the provided key/value pair. + Can specify multiple near value filters; each successive filter is lower priority than the previous. + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithSlotsAvailable(System.Int32)"> + <summary> + returns only lobbies with the specified number of slots available + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithMaxResults(System.Int32)"> + <summary> + sets how many results to return, the lower the count the faster it is to download the lobby results + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.RequestAsync"> + <summary> + Run the query, get the matching lobbies + </summary> + </member> + <member name="T:Steamworks.Data.OutgoingPacket"> + <summary> + A server query packet. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Address"> + <summary> + Target IP address + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Port"> + <summary> + Target port + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Data"> + <summary> + This data is pooled. Make a copy if you don't use it immediately. + This buffer is also quite large - so pay attention to Size. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Size"> + <summary> + Size of the data + </summary> + </member> + <member name="T:Steamworks.Data.RemotePlaySession"> + <summary> + Represents a RemotePlaySession from the SteamRemotePlay interface + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.IsValid"> + <summary> + Returns true if this session was valid when created. This will stay true even + after disconnection - so be sure to watch SteamRemotePlay.OnSessionDisconnected + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.SteamId"> + <summary> + Get the SteamID of the connected user + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.ClientName"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.FormFactor"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagUser(Steamworks.SteamId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.SetLocation(System.String)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagPublishedFile(Steamworks.Data.PublishedFileId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="P:Steamworks.Data.ServerInfo.Tags"> + <summary> + Gets the individual tags for this server + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToHistory"> + <summary> + Add this server to our history list + If we're already in the history list, weill set the last played time to now + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.QueryRulesAsync"> + <summary> + If this server responds to source engine style queries, we'll be able to get a list of rules here + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromHistory"> + <summary> + Remove this server from our history list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToFavourites"> + <summary> + Add this server to our favourite list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromFavourites"> + <summary> + Remove this server from our favourite list + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultStatus(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Find out the status of an asynchronous inventory result handle. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultItems(Steamworks.Data.SteamInventoryResult_t,Steamworks.Data.SteamItemDetails_t[],System.UInt32@)"> + <summary> + Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultTimestamp(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.CheckResultSteamID(Steamworks.Data.SteamInventoryResult_t,Steamworks.SteamId)"> + <summary> + Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.DestroyResult(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Destroys a result handle and frees all associated memory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetAllItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + Captures the entire state of the current users Steam inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetItemsByID(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId@,System.UInt32)"> + <summary> + Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GrantPromoItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only). + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.ConsumeItem(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId,System.UInt32)"> + <summary> + ConsumeItem() removes items from the inventory permanently. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.SendItemDropHeartbeat"> + <summary> + Deprecated method. Playtime accounting is performed on the Steam servers. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.TriggerItemDrop(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryDefId)"> + <summary> + Playtime credit must be consumed and turned into item drops by your game. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.LoadItemDefinitions"> + <summary> + LoadItemDefinitions triggers the automatic load and refresh of item definitions. + </summary> + </member> + <member name="M:Steamworks.ISteamUserStats.DownloadLeaderboardEntriesForUsers(Steamworks.Data.SteamLeaderboard_t,Steamworks.SteamId[],System.Int32)"> + <summary> + Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.Interface"> + <summary> + An optional interface to use instead of deriving + </summary> + </member> + <member name="F:Steamworks.ConnectionManager.Connection"> + <summary> + The actual connection we're managing + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.ConnectionInfo"> + <summary> + The last received ConnectionInfo + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We're trying to connect! + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We started connecting to this guy + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + We got disconnected + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnMessage(System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Must call Accept or Close on the connection within a second or so + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection leaves + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnMessage(Steamworks.Data.Connection,Steamworks.Data.NetIdentity,System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message from a connection + </summary> + </member> + <member name="T:Steamworks.SocketManager"> + <summary> + Used as a base to create your networking server. This creates a socket + and listens/communicates with multiple queries. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Default behaviour is to accept every connection + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="P:Steamworks.ServerList.Base.AppId"> + <summary> + Which app we're querying. Defaults to the current app. + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnChanges"> + <summary> + When a new server is added, this function will get called + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnResponsiveServer"> + <summary> + Called for every responsive server + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Responsive"> + <summary> + A list of servers that responded. If you're only interested in servers that responded since you + last updated, then simply clear this list. + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Unresponsive"> + <summary> + A list of servers that were in the master list but didn't respond. + </summary> + </member> + <member name="M:Steamworks.ServerList.Base.RunQueryAsync(System.Single)"> + <summary> + Query the server list. Task result will be true when finished + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamApps"> + <summary> + Exposes a wide range of information and actions for applications and Downloadable Content (DLC). + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnDlcInstalled"> + <summary> + posted after the user gains ownership of DLC and that DLC is installed + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnNewLaunchParameters"> + <summary> + posted after the user gains executes a Steam URL with command line or query parameters + such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc + while the game is already running. The new params can be queried + with GetLaunchQueryParam and GetLaunchCommandLine + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribed"> + <summary> + Checks if the active user is subscribed to the current App ID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFamilySharing"> + <summary> + Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsLowVoilence"> + <summary> + Checks if the license owned by the user provides low violence depots. + Low violence depots are useful for copies sold in countries that have content restrictions + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsCybercafe"> + <summary> + Checks whether the current App ID license is for Cyber Cafes. + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsVACBanned"> + <summary> + CChecks if the user has a VAC ban on their account + </summary> + </member> + <member name="P:Steamworks.SteamApps.GameLanguage"> + <summary> + Gets the current language that the user has set. + This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AvailableLanguages"> + <summary> + Gets a list of the languages the current app supports. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsSubscribedToApp(Steamworks.AppId)"> + <summary> + Checks if the active user is subscribed to a specified AppId. + Only use this if you need to check ownership of another game related to yours, a demo for example. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsDlcInstalled(Steamworks.AppId)"> + <summary> + Checks if the user owns a specific DLC and if the DLC is installed + </summary> + </member> + <member name="M:Steamworks.SteamApps.PurchaseTime(Steamworks.AppId)"> + <summary> + Returns the time of the purchase of the app + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFreeWeekend"> + <summary> + Checks if the user is subscribed to the current app through a free weekend + This function will return false for users who have a retail or other type of license + Before using, please ask your Valve technical contact how to package and secure your free weekened + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcInformation"> + <summary> + Returns metadata for all available DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.UninstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="P:Steamworks.SteamApps.CurrentBetaName"> + <summary> + Returns null if we're not on a beta branch, else the name of the branch + </summary> + </member> + <member name="M:Steamworks.SteamApps.MarkContentCorrupt(System.Boolean)"> + <summary> + Allows you to force verify game content on next launch. + + If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), + you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit. + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstalledDepots(Steamworks.AppId)"> + <summary> + Gets a list of all installed depots for a given App ID in mount order + </summary> + </member> + <member name="M:Steamworks.SteamApps.AppInstallDir(Steamworks.AppId)"> + <summary> + Gets the install folder for a specific AppID. + This works even if the application is not installed, based on where the game would be installed with the default Steam library location. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsAppInstalled(Steamworks.AppId)"> + <summary> + The app may not actually be owned by the current user, they may have it left over from a free weekend, etc. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AppOwner"> + <summary> + Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed.. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetLaunchParam(System.String)"> + <summary> + Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. + Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. + Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + but it is advised that you not param names beginning with an underscore for your own features. + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcDownloadProgress(Steamworks.AppId)"> + <summary> + Gets the download progress for optional DLC. + </summary> + </member> + <member name="P:Steamworks.SteamApps.BuildId"> + <summary> + Gets the buildid of this app, may change at any time based on backend updates to the game. + Defaults to 0 if you're not running a build downloaded from steam. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetFileDetailsAsync(System.String)"> + <summary> + Asynchronously retrieves metadata details about a specific file in the depot manifest. + Currently provides: + </summary> + </member> + <member name="P:Steamworks.SteamApps.CommandLine"> + <summary> + Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. + This method of passing a connect string (used when joining via rich presence, accepting an + invite, etc) is preferable to passing the connect string on the operating system command + line, which is a security risk. In order for rich presence joins to go through this + path and not be placed on the OS command line, you must set a value in your app's + configuration on Steam. Ask Valve for help with this. + </summary> + </member> + <member name="M:Steamworks.SteamClient.Init(System.UInt32,System.Boolean)"> + <summary> + Initialize the steam client. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="P:Steamworks.SteamClient.IsLoggedOn"> + <summary> + Checks if the current user's Steam client is connected to the Steam servers. + If it's not then no real-time services provided by the Steamworks API will be enabled. The Steam + client will automatically be trying to recreate the connection as often as possible. When the + connection is restored a SteamServersConnected_t callback will be posted. + You usually don't need to check for this yourself. All of the API calls that rely on this will + check internally. Forcefully disabling stuff when the player loses access is usually not a + very good experience for the player and you could be preventing them from accessing APIs that do not + need a live connection to Steam. + </summary> + </member> + <member name="P:Steamworks.SteamClient.SteamId"> + <summary> + Gets the Steam ID of the account currently logged into the Steam client. This is + commonly called the 'current user', or 'local user'. + A Steam ID is a unique identifier for a Steam accounts, Steam groups, Lobbies and Chat + rooms, and used to differentiate users in all parts of the Steamworks API. + </summary> + </member> + <member name="P:Steamworks.SteamClient.Name"> + <summary> + returns the local players name - guaranteed to not be NULL. + this is the same name as on the users community profile page + </summary> + </member> + <member name="P:Steamworks.SteamClient.State"> + <summary> + gets the status of the current user + </summary> + </member> + <member name="P:Steamworks.SteamClient.AppId"> + <summary> + returns the appID of the current process + </summary> + </member> + <member name="M:Steamworks.SteamClient.RestartAppIfNecessary(System.UInt32)"> + <summary> + Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't + this returns true then it starts the Steam client if required and launches your game again through it, + and you should quit your process as soon as possible. This effectively runs steam://run/AppId so it + may not relaunch the exact executable that called it, as it will always relaunch from the version + installed in your Steam library folder/ + Note that during development, when not launching via Steam, this might always return true. + </summary> + </member> + <member name="M:Steamworks.SteamClient.ValidCheck"> + <summary> + Called in interfaces that rely on this being initialized + </summary> + </member> + <member name="T:Steamworks.SteamFriends"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnChatMessage"> + <summary> + Called when chat message has been received from a friend. You'll need to turn on + ListenForFriendsMessages to recieve this. (friend, msgtype, message) + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnPersonaStateChange"> + <summary> + called when a friends' status changes + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameRichPresenceJoinRequested"> + <summary> + Called when the user tries to join a game from their friends list + rich presence will have been set with the "connect" key which is set here + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameOverlayActivated"> + <summary> + Posted when game overlay activates or deactivates + the game can use this to be pause or resume single player games + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameServerChangeRequested"> + <summary> + Called when the user tries to join a different game server from their friends list + game client should attempt to connect to specified server when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameLobbyJoinRequested"> + <summary> + Called when the user tries to join a lobby from their friends list + game client should attempt to connect to specified lobby when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnFriendRichPresenceUpdate"> + <summary> + Callback indicating updated data about friends rich presence information + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenOverlay(System.String)"> + <summary> + The dialog to open. Valid options are: + "friends", + "community", + "players", + "settings", + "officialgamegroup", + "stats", + "achievements". + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenUserOverlay(Steamworks.SteamId,System.String)"> + <summary> + "steamid" - Opens the overlay web browser to the specified user or groups profile. + "chat" - Opens a chat window to the specified user, or joins the group chat. + "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API. + "stats" - Opens the overlay web browser to the specified user's stats. + "achievements" - Opens the overlay web browser to the specified user's achievements. + "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend. + "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend. + "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite. + "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenStoreOverlay(Steamworks.AppId)"> + <summary> + Activates the Steam Overlay to the Steam store page for the provided app. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenWebOverlay(System.String,System.Boolean)"> + <summary> + Activates Steam Overlay web browser directly to the specified URL. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenGameInviteOverlay(Steamworks.SteamId)"> + <summary> + Activates the Steam Overlay to open the invite dialog. Invitations sent from this dialog will be for the provided lobby. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetPlayedWith(Steamworks.SteamId)"> + <summary> + Mark a target user as 'played with'. + NOTE: The current user must be in game with the other player for the association to work. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.RequestUserInformation(Steamworks.SteamId,System.Boolean)"> + <summary> + Requests the persona name and optionally the avatar of a specified user. + NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them. + returns true if we're fetching the data, false if we already have it + </summary> + </member> + <member name="M:Steamworks.SteamFriends.GetRichPresence(System.String)"> + <summary> + Find a rich presence value by key for current user. Will be null if not found. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetRichPresence(System.String,System.String)"> + <summary> + Sets a rich presence value by key for current user. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.ClearRichPresence"> + <summary> + Clears all of the current user's rich presence data. + </summary> + </member> + <member name="P:Steamworks.SteamFriends.ListenForFriendsMessages"> + <summary> + Listens for Steam friends chat messages. + You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. + After enabling this you will receive callbacks when ever the user receives a chat message. + </summary> + </member> + <member name="M:Steamworks.SteamInput.RunFrame"> + <summary> + You shouldn't really need to call this because it get called by RunCallbacks on SteamClient + but Valve think it might be a nice idea if you call it right before you get input info - + just to make sure the info you're getting is 100% up to date. + </summary> + </member> + <member name="P:Steamworks.SteamInput.Controllers"> + <summary> + Return a list of connected controllers. + </summary> + </member> + <member name="M:Steamworks.SteamInput.GetDigitalActionGlyph(Steamworks.Controller,System.String)"> + <summary> + Return an absolute path to the PNG image glyph for the provided digital action name. The current + action set in use for the controller will be used for the lookup. You should cache the result and + maintain your own list of loaded PNG assets. + </summary> + <param name="controller"></param> + <param name="action"></param> + <returns></returns> + </member> + <member name="T:Steamworks.SteamInventory"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamInventory.LoadItemDefinitions"> + <summary> + Call this if you're going to want to access definition information. You should be able to get + away with calling this once at the start if your game, assuming your items don't change all the time. + This will trigger OnDefinitionsUpdated at which point Definitions should be set. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.WaitForDefinitions(System.Single)"> + <summary> + Will call LoadItemDefinitions and wait until Definitions is not null + </summary> + </member> + <member name="M:Steamworks.SteamInventory.FindDefinition(Steamworks.Data.InventoryDefId)"> + <summary> + Try to find the definition that matches this definition ID. + Uses a dictionary so should be about as fast as possible. + </summary> + </member> + <member name="P:Steamworks.SteamInventory.Items"> + <summary> + We will try to keep this list of your items automatically up to date. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItems"> + <summary> + Update the list of Items[] + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItemsAsync"> + <summary> + Get all items and return the InventoryResult + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GenerateItemAsync(Steamworks.InventoryDef,System.Int32)"> + <summary> + This is used to grant a specific item to the user. This should + only be used for development prototyping, from a trusted server, + or if you don't care about hacked clients granting arbitrary items. + This call can be disabled by a setting on Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem.Amount[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.DeserializeAsync(System.Byte[],System.Int32)"> + <summary> + Deserializes a result set and verifies the signature bytes. + This call has a potential soft-failure mode where the Result is expired, it will + still succeed in this mode.The "expired" + result could indicate that the data may be out of date - not just due to timed + expiration( one hour ), but also because one of the items in the result set may + have been traded or consumed since the result set was generated.You could compare + the timestamp from GetResultTimestamp to ISteamUtils::GetServerRealTime to determine + how old the data is. You could simply ignore the "expired" result code and + continue as normal, or you could request the player with expired data to send + an updated result set. + You should call CheckResultSteamID on the result handle when it completes to verify + that a remote player is not pretending to have a different user's inventory. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GrantPromoItemsAsync"> + <summary> + Grant all promotional items the user is eligible for + </summary> + </member> + <member name="M:Steamworks.SteamInventory.TriggerItemDropAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger an item drop for this user. This is for timed drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.AddPromoItemAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger a promo item drop. You can call this at startup, it won't + give users multiple promo drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.StartPurchaseAsync(Steamworks.InventoryDef[])"> + <summary> + Start buying a cart load of items. This will return a positive result is the purchase has + begun. You should listen out for SteamUser.OnMicroTxnAuthorizationResponse for a success. + </summary> + </member> + <member name="T:Steamworks.SteamMatchmaking"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="P:Steamworks.SteamMatchmaking.MaxLobbyKeyLength"> + <summary> + Maximum number of characters a lobby metadata key can be + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyInvite"> + <summary> + Someone invited you to a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyEntered"> + <summary> + You joined a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyCreated"> + <summary> + You created a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyGameCreated"> + <summary> + A game server has been associated with the lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyDataChanged"> + <summary> + The lobby metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDataChanged"> + <summary> + The lobby member metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberJoined"> + <summary> + The lobby member joined + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberLeave"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDisconnected"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberKicked"> + <summary> + The lobby member was kicked. The 3rd param is the user that kicked them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberBanned"> + <summary> + The lobby member was banned. The 3rd param is the user that banned them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnChatMessage"> + <summary> + A chat message was recieved from a member of a lobby + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.CreateLobbyAsync(System.Int32)"> + <summary> + Creates a new invisible lobby. Call lobby.SetPublic to take it online. + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.JoinLobbyAsync(Steamworks.SteamId)"> + <summmary> + Attempts to directly join the specified lobby + </summmary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetFavoriteServers"> + <summary> + Get a list of servers that are on your favorites list + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetHistoryServers"> + <summary> + Get a list of servers that you have added to your play history + </summary> + </member> + <member name="T:Steamworks.SteamMatchmakingServers"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="T:Steamworks.SteamMusic"> + <summary> + Functions to control music playback in the steam client. + This gives games the opportunity to do things like pause the music or lower the volume, + when an important cut scene is shown, and start playing afterwards. + Nothing uses Steam Music though so this can probably get fucked + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnPlaybackChanged"> + <summary> + Playback status changed + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnVolumeChanged"> + <summary> + Volume changed, parameter is new volume + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsEnabled"> + <summary> + Checks if Steam Music is enabled + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsPlaying"> + <summary> + true if a song is currently playing, paused, or queued up to play; otherwise false. + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Status"> + <summary> + Gets the current status of the Steam Music player + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayPrevious"> + <summary> + Have the Steam Music player play the previous song. + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayNext"> + <summary> + Have the Steam Music player skip to the next song + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Volume"> + <summary> + Gets/Sets the current volume of the Steam Music player + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PSessionRequest"> + <summary> + This SteamId wants to send you a message. You should respond by calling AcceptP2PSessionWithUser + if you want to recieve their messages + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PConnectionFailed"> + <summary> + Called when packets can't get through to the specified user. + All queued packets unsent at this point will be dropped, further attempts + to send will retry making the connection (but will be dropped if we fail again). + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AcceptP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called in response to a OnP2PSessionRequest + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AllowP2PPacketRelay(System.Boolean)"> + <summary> + Allow or disallow P2P connects to fall back on Steam server relay if direct + connection or NAT traversal can't be established. Applies to connections + created after setting or old connections that need to reconnect. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.CloseP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called when you're done communicating with a user, as this will + free up all of the resources allocated for the connection under-the-hood. + If the remote user tries to send data to you again, a new OnP2PSessionRequest + callback will be posted + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.IsP2PPacketAvailable(System.Int32)"> + <summary> + Checks if a P2P packet is available to read, and gets the size of the message if there is one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte[],System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte*,System.UInt32,System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte[],System.Int32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte*,System.UInt32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket``1(Steamworks.Data.NetAddress)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6) + + To use this derive a class from SocketManager and override as much as you want. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket(Steamworks.Data.NetAddress,Steamworks.ISocketManager)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6). + + To use this you should pass a class that inherits ISocketManager. You can use + SocketManager to get connections and send messages, but the ISocketManager class + will received all the appropriate callbacks. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal``1(Steamworks.Data.NetAddress)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal(Steamworks.Data.NetAddress,Steamworks.IConnectionManager)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateRelaySocket``1(System.Int32)"> + <summary> + Creates a server that will be relayed via Valve's network (hiding the IP and improving ping) + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectRelay``1(Steamworks.SteamId,System.Int32)"> + <summary> + Connect to a relay server + </summary> + </member> + <member name="T:Steamworks.SteamNetworkingUtils"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamNetworkingUtils.OnDebugOutput"> + <summary> + A function to receive debug network information on. This will do nothing + unless you set DebugLevel to something other than None. + + You should set this to an appropriate level instead of setting it to the highest + and then filtering it by hand because a lot of energy is used by creating the strings + and your frame rate will tank and you won't know why. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Status"> + <summary> + The latest available status gathered from the SteamRelayNetworkStatus callback + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.InitRelayNetworkAccess"> + <summary> + If you know that you are going to be using the relay network (for example, + because you anticipate making P2P connections), call this to initialize the + relay network. If you do not call this, the initialization will + be delayed until the first time you use a feature that requires access + to the relay network, which will delay that first access. + + You can also call this to force a retry if the previous attempt has failed. + Performing any action that requires access to the relay network will also + trigger a retry, and so calling this function is never strictly necessary, + but it can be useful to call it a program launch time, if access to the + relay network is anticipated. + + Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + callbacks to know when initialization has completed. + Typically initialization completes in a few seconds. + + Note: dedicated servers hosted in known data centers do *not* need + to call this, since they do not make routing decisions. However, if + the dedicated server will be using P2P functionality, it will act as + a "client" and this should be called. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.LocalPingLocation"> + <summary> + Return location info for the current host. + + It takes a few seconds to initialize access to the relay network. If + you call this very soon after startup the data may not be available yet. + + This always return the most up-to-date information we have available + right now, even if we are in the middle of re-calculating ping times. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + <summary> + Same as PingLocation.EstimatePingTo, but assumes that one location is the local host. + This is a bit faster, especially if you need to calculate a bunch of + these in a loop to find the fastest one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.WaitForPingDataAsync(System.Single)"> + <summary> + If you need ping information straight away, wait on this. It will return + immediately if you already have up to date ping data + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.ConnectionTimeout"> + <summary> + Timeout value (in ms) to use when first connecting + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Timeout"> + <summary> + Timeout value (in ms) to use after connection is established + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.SendBufferSize"> + <summary> + Upper limit of buffered pending bytes to be sent. + If this is reached SendMessage will return LimitExceeded. + Default is 524288 bytes (512k) + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.DebugLevel"> + <summary> + Get Debug Information via OnDebugOutput event + + Except when debugging, you should only use NetDebugOutput.Msg + or NetDebugOutput.Warning. For best performance, do NOT + request a high detail level and then filter out messages in the callback. + + This incurs all of the expense of formatting the messages, which are then discarded. + Setting a high priority value (low numeric value) here allows the library to avoid + doing this work. + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugLevel"> + <summary> + So we can remember and provide a Get for DebugLEvel + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugFunc"> + <summary> + We need to keep the delegate around until it's not used anymore + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OnDebugMessage(Steamworks.NetDebugOutput,System.IntPtr)"> + <summary> + This can be called from other threads - so we're going to queue these up and process them in a safe place. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OutputDebugMessages"> + <summary> + Called regularly from the Dispatch loop so we can provide a timely + stream of messages. + </summary> + </member> + <member name="T:Steamworks.SteamParental"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamParental.OnSettingsChanged"> + <summary> + Parental Settings Changed + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockEnabled"> + <summary> + + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockLocked"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsAppBlocked(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsAppInBlockList(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsFeatureBlocked(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsFeatureInBlockList(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="T:Steamworks.SteamParties"> + <summary> + This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. + Tell Steam the number of player spots that are available for your party, and a join-game string, and it + will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. + Adjust the number of open slots if other players join through alternate matchmaking methods. + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnBeaconLocationsUpdated"> + <summary> + The list of possible Party beacon locations has changed + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnActiveBeaconsUpdated"> + <summary> + The list of active beacons may have changed + </summary> + </member> + <member name="T:Steamworks.SteamRemotePlay"> + <summary> + Functions that provide information about Steam Remote Play sessions, streaming your game content to another computer or to a Steam Link app or hardware. + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionConnected"> + <summary> + Called when a session is connected + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionDisconnected"> + <summary> + Called when a session becomes disconnected + </summary> + </member> + <member name="P:Steamworks.SteamRemotePlay.SessionCount"> + <summary> + Get the number of currently connected Steam Remote Play sessions + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.GetSession(System.Int32)"> + <summary> + Get the currently connected Steam Remote Play session ID at the specified index. + IsValid will return false if it's out of bounds + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.SendInvite(Steamworks.SteamId)"> + <summary> + Invite a friend to Remote Play Together + This returns false if the invite can't be sent + </summary> + </member> + <member name="T:Steamworks.SteamRemoteStorage"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileWrite(System.String,System.Byte[])"> + <summary> + Creates a new file, writes the bytes to the file, and then closes the file. + If the target file already exists, it is overwritten + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileRead(System.String)"> + <summary> + Opens a binary file, reads the contents of the file into a byte array, and then closes the file. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileExists(System.String)"> + <summary> + Checks whether the specified file exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FilePersisted(System.String)"> + <summary> + Checks if a specific file is persisted in the steam cloud. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileTime(System.String)"> + <summary> + Gets the specified file's last modified date/time. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileSize(System.String)"> + <summary> + Gets the specified files size in bytes. 0 if not exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileForget(System.String)"> + <summary> + Deletes the file from remote storage, but leaves it on the local disk and remains accessible from the API. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileDelete(System.String)"> + <summary> + Deletes a file from the local disk, and propagates that delete to the cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaBytes"> + <summary> + Number of bytes total + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaUsedBytes"> + <summary> + Number of bytes used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaRemainingBytes"> + <summary> + Number of bytes remaining until your quota is used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabled"> + <summary> + returns true if IsCloudEnabledForAccount AND IsCloudEnabledForApp + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForAccount"> + <summary> + Checks if the account wide Steam Cloud setting is enabled for this user + or if they disabled it in the Settings->Cloud dialog. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForApp"> + <summary> + Checks if the per game Steam Cloud setting is enabled for this user + or if they disabled it in the Game Properties->Update dialog. + + This must only ever be set as the direct result of the user explicitly + requesting that it's enabled or not. This is typically accomplished with + a checkbox within your in-game options + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.FileCount"> + <summary> + Gets the total number of local files synchronized by Steam Cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.Files"> + <summary> + Get a list of filenames synchronized by Steam Cloud + </summary> + </member> + <member name="T:Steamworks.SteamScreenshots"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotRequested"> + <summary> + A screenshot has been requested by the user from the Steam screenshot hotkey. + This will only be called if Hooked is true, in which case Steam + will not take the screenshot itself. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotReady"> + <summary> + A screenshot successfully written or otherwise added to the library and can now be tagged. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotFailed"> + <summary> + A screenshot attempt failed + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.WriteScreenshot(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.AddScreenshot(System.String,System.String,System.Int32,System.Int32)"> + <summary> + Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + JPEG, TGA, and PNG formats are supported. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.TriggerScreenshot"> + <summary> + Causes the Steam overlay to take a screenshot. + If screenshots are being hooked by the game then a + ScreenshotRequested callback is sent back to the game instead. + </summary> + </member> + <member name="P:Steamworks.SteamScreenshots.Hooked"> + <summary> + Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or if the game handles them. + Hooking is disabled by default, and only ever enabled if you do so with this function. + If the hooking is enabled, then the ScreenshotRequested_t callback will be sent if the user presses the hotkey or + when TriggerScreenshot is called, and then the game is expected to call WriteScreenshot or AddScreenshotToLibrary in response. + </summary> + </member> + <member name="T:Steamworks.SteamServer"> + <summary> + Provides the core of the Steam Game Servers API + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnValidateAuthTicketResponse"> + <summary> + User has been authed or rejected + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the server now is logged on and has a working connection to the Steam master server. + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServerConnectFailure"> + <summary> + This will occur periodically if the Steam client is not connected, and has failed when retrying to establish a connection (result, stilltrying) + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersDisconnected"> + <summary> + Disconnected from Steam + </summary> + </member> + <member name="M:Steamworks.SteamServer.Init(Steamworks.AppId,Steamworks.SteamServerInit,System.Boolean)"> + <summary> + Initialize the steam server. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="M:Steamworks.SteamServer.RunCallbacks"> + <summary> + Run the callbacks. This is also called in Async callbacks. + </summary> + </member> + <member name="P:Steamworks.SteamServer.DedicatedServer"> + <summary> + Sets whether this should be marked as a dedicated server. + If not, it is assumed to be a listen server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MaxPlayers"> + <summary> + Gets or sets the current MaxPlayers. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.BotCount"> + <summary> + Gets or sets the current BotCount. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MapName"> + <summary> + Gets or sets the current Map Name. + </summary> + </member> + <member name="P:Steamworks.SteamServer.ModDir"> + <summary> + Gets or sets the current ModDir + </summary> + </member> + <member name="P:Steamworks.SteamServer.Product"> + <summary> + Gets the current product + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameDescription"> + <summary> + Gets or sets the current Product + </summary> + </member> + <member name="P:Steamworks.SteamServer.ServerName"> + <summary> + Gets or sets the current ServerName + </summary> + </member> + <member name="P:Steamworks.SteamServer.Passworded"> + <summary> + Set whether the server should report itself as passworded + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameTags"> + <summary> + Gets or sets the current GameTags. This is a comma seperated list of tags for this server. + When querying the server list you can filter by these tags. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOnAnonymous"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOff"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="P:Steamworks.SteamServer.LoggedOn"> + <summary> + Returns true if the server is connected and registered with the Steam master server + You should have called LogOnAnonymous etc on startup. + </summary> + </member> + <member name="P:Steamworks.SteamServer.PublicIp"> + <summary> + To the best of its ability this tries to get the server's + current public ip address. Be aware that this is likely to return + null for the first few seconds after initialization. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeats"> + <summary> + Enable or disable heartbeats, which are sent regularly to the master server. + Enabled by default. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeatRate"> + <summary> + Set heartbeat interval, if automatic heartbeats are enabled. + You can leave this at the default. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ForceHeartbeat"> + <summary> + Force send a heartbeat to the master server instead of waiting + for the next automatic update (if you've left them enabled) + </summary> + </member> + <member name="M:Steamworks.SteamServer.UpdatePlayer(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Update this connected player's information. You should really call this + any time a player's name or score changes. This keeps the information shown + to server queries up to date. + </summary> + </member> + <member name="M:Steamworks.SteamServer.SetKey(System.String,System.String)"> + <summary> + Sets a Key Value. These can be anything you like, and are accessible + when querying servers from the server list. + + Information describing gamemodes are common here. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ClearKeys"> + <summary> + Remove all key values + </summary> + </member> + <member name="M:Steamworks.SteamServer.BeginAuthSession(System.Byte[],Steamworks.SteamId)"> + <summary> + Start authorizing a ticket. This user isn't authorized yet. Wait for a call to OnAuthChange. + </summary> + </member> + <member name="M:Steamworks.SteamServer.EndSession(Steamworks.SteamId)"> + <summary> + Forget this guy. They're no longer in the game. + </summary> + </member> + <member name="M:Steamworks.SteamServer.GetOutgoingPacket(Steamworks.Data.OutgoingPacket@)"> + <summary> + If true, Steam wants to send a packet. You should respond by sending + this packet in an unconnected way to the returned Address and Port. + </summary> + <param name="packet">Packet to send. The Data passed is pooled - so use it immediately.</param> + <returns>True if we want to send a packet</returns> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.Byte[],System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.IntPtr,System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.UserHasLicenseForApp(Steamworks.SteamId,Steamworks.AppId)"> + <summary> + Does the user own this app (which could be DLC) + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.RequestUserStatsAsync(Steamworks.SteamId)"> + <summary> + Downloads stats for the user + If the user has no stats will return fail + these stats will only be auto-updated for clients playing on the server + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Unlocks the specified achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.ClearAchievement(Steamworks.SteamId,System.String)"> + <summary> + Resets the unlock status of an achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Return true if available, exists and unlocked + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.StoreUserStats(Steamworks.SteamId)"> + <summary> + Once you've set a stat change on a user you need to commit your changes. + You can do that using this function. The callback will let you know if + your action succeeded, but most of the time you can fire and forget. + </summary> + </member> + <member name="T:Steamworks.SteamUGC"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUGC.OnDownloadItemResult"> + <summary> + Posted after Download call + </summary> + </member> + <member name="M:Steamworks.SteamUGC.Download(Steamworks.Data.PublishedFileId,System.Boolean)"> + <summary> + Start downloading this item. You'll get notified of completion via OnDownloadItemResult. + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="highPriority">If true this should go straight to the top of the download list</param> + <returns>true if nothing went wrong and the download is started</returns> + </member> + <member name="M:Steamworks.SteamUGC.DownloadAsync(Steamworks.Data.PublishedFileId,System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Will attempt to download this item asyncronously - allowing you to instantly react to its installation + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="progress">An optional callback</param> + <param name="ct">Allows you to send a message to cancel the download anywhere during the process</param> + <param name="milisecondsUpdateDelay">How often to call the progress function</param> + <returns>true if downloaded and installed correctly</returns> + </member> + <member name="M:Steamworks.SteamUGC.QueryFileAsync(Steamworks.Data.PublishedFileId)"> + <summary> + Utility function to fetch a single item. Internally this uses Ugc.FileQuery - + which you can use to query multiple items if you need to. + </summary> + </member> + <member name="T:Steamworks.SteamUser"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the Steam client now has a working connection to the Steam servers. + Usually this will have occurred before the game has launched, and should only be seen if the + user has dropped connection due to a networking issue or a Steam server update. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServerConnectFailure"> + <summary> + Called when a connection attempt has failed. + This will occur periodically if the Steam client is not connected, + and has failed when retrying to establish a connection. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersDisconnected"> + <summary> + Called if the client has lost connection to the Steam servers. + Real-time services will be disabled until a matching OnSteamServersConnected has been posted. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnClientGameServerDeny"> + <summary> + Sent by the Steam server to the client telling it to disconnect from the specified game server, + which it may be in the process of or already connected to. + The game client should immediately disconnect upon receiving this message. + This can usually occur if the user doesn't have rights to play on the game server. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnLicensesUpdated"> + <summary> + Called whenever the users licenses (owned packages) changes. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnValidateAuthTicketResponse"> + <summary> + Called when an auth ticket has been validated. + The first parameter is the steamid of this user + The second is the Steam ID that owns the game, this will be different from the first + if the game is being borrowed via Steam Family Sharing + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGetAuthSessionTicketResponse"> + <summary> + Used internally for GetAuthSessionTicketAsync + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnMicroTxnAuthorizationResponse"> + <summary> + Called when a user has responded to a microtransaction authorization request. + ( appid, orderid, user authorized ) + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGameWebCallback"> + <summary> + Sent to your game in response to a steam://gamewebcallback/ command from a user clicking a link in the Steam overlay browser. + You can use this to add support for external site signups where you want to pop back into the browser after some web page + signup sequence, and optionally get back some detail about that. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnDurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, + half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.SteamUser.VoiceRecord"> + <summary> + Starts/Stops voice recording. + Once started, use GetAvailableVoice and GetVoice to get the data, and then call StopVoiceRecording + when the user has released their push-to-talk hotkey or the game session has completed. + </summary> + </member> + <member name="P:Steamworks.SteamUser.HasVoiceData"> + <summary> + Returns true if we have voice data waiting to be read + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceData(System.IO.Stream)"> + <summary> + Reads the voice data and returns the number of bytes written. + The compressed data can be transmitted by your application and decoded back into raw audio data using + DecompressVoice on the other side. The compressed data provided is in an arbitrary format and is not meant to be played directly. + This should be called once per frame, and at worst no more than four times a second to keep the microphone input delay as low as + possible. Calling this any less may result in gaps in the returned stream. + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceDataBytes"> + <summary> + Reads the voice data and returns the bytes. You should obviously ideally be using + ReadVoiceData because it won't be creating a new byte array every call. But this + makes it easier to get it working, so let the babies have their bottle. + </summary> + </member> + <member name="M:Steamworks.SteamUser.DecompressVoice(System.IO.Stream,System.Int32,System.IO.Stream)"> + <summary> + Decodes the compressed voice data returned by GetVoice. + The output data is raw single-channel 16-bit PCM audio.The decoder supports any sample rate from 11025 to 48000. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicket"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicketAsync(System.Double)"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + This waits for a positive response from the backend before returning the ticket. This means + the ticket is definitely ready to go as soon as it returns. Will return null if the callback + times out or returns negatively. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsBehindNAT"> + <summary> + Checks if the current users looks like they are behind a NAT device. + This is only valid if the user is connected to the Steam servers and may not catch all forms of NAT. + </summary> + </member> + <member name="P:Steamworks.SteamUser.SteamLevel"> + <summary> + Gets the Steam level of the user, as shown on their Steam community profile. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetStoreAuthUrlAsync(System.String)"> + <summary> + Requests a URL which authenticates an in-game browser for store check-out, and then redirects to the specified URL. + As long as the in-game browser accepts and handles session cookies, Steam microtransaction checkout pages will automatically recognize the user instead of presenting a login page. + NOTE: The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. + NOTE: The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneVerified"> + <summary> + Checks whether the current user has verified their phone number. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsTwoFactorEnabled"> + <summary> + Checks whether the current user has Steam Guard two factor authentication enabled on their account. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneIdentifying"> + <summary> + Checks whether the user's phone number is used to uniquely identify them. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneRequiringVerification"> + <summary> + Checks whether the current user's phone number is awaiting (re)verification. + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync(System.Byte[])"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + If you get a null result from this it's probably because you're calling it too often. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetDurationControl"> + <summary> + Get anti indulgence / duration control + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementIconFetched"> + <summary> + called when the achivement icon is loaded + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsReceived"> + <summary> + called when the latests stats and achievements have been received + from the server + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsStored"> + <summary> + result of a request to store the user stats for a game + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementProgress"> + <summary> + result of a request to store the achievements for a game, or an + "indicate progress" call. If both m_nCurProgress and m_nMaxProgress + are zero, that means the achievement has been fully unlocked + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsUnloaded"> + <summary> + Callback indicating that a user's stats have been unloaded + </summary> + </member> + <member name="P:Steamworks.SteamUserStats.Achievements"> + <summary> + Get the available achievements + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.IndicateAchievementProgress(System.String,System.Int32,System.Int32)"> + <summary> + Show the user a pop-up notification with the current progress toward an achievement. + Will return false if RequestCurrentStats has not completed and successfully returned + its callback, if the achievement doesn't exist/has unpublished changes in the app's + Steamworks Admin page, or if the achievement is unlocked. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.PlayerCountAsync"> + <summary> + Tries to get the number of players currently playing this game. + Or -1 if failed. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.StoreStats"> + <summary> + Send the changed stats and achievements data to the server for permanent storage. + If this fails then nothing is sent to the server. It's advisable to keep trying until the call is successful. + This call can be rate limited. Call frequency should be on the order of minutes, rather than seconds.You should only be calling this during major state changes such as the end of a round, the map changing, or the user leaving a server. This call is required to display the achievement unlock notification dialog though, so if you have called SetAchievement then it's advisable to call this soon after that. + If you have stats or achievements that you have saved locally but haven't uploaded with this function when your application process ends then this function will automatically be called. + You can find additional debug information written to the %steam_install%\logs\stats_log.txt file. + This function returns true upon success if : + RequestCurrentStats has completed and successfully returned its callback AND + the current game has stats associated with it in the Steamworks Partner backend, and those stats are published. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestCurrentStats"> + <summary> + Asynchronously request the user's current stats and achievements from the server. + You must always call this first to get the initial status of stats and achievements. + Only after the resulting callback comes back can you start calling the rest of the stats + and achievement functions for the current user. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestGlobalStatsAsync(System.Int32)"> + <summary> + Asynchronously fetches global stats data, which is available for stats marked as + "aggregated" in the App Admin panel of the Steamworks website. + You must have called RequestCurrentStats and it needs to return successfully via + its callback prior to calling this. + </summary> + <param name="days">How many days of day-by-day history to retrieve in addition to the overall totals. The limit is 60.</param> + <returns>OK indicates success, InvalidState means you need to call RequestCurrentStats first, Fail means the remote call failed</returns> + </member> + <member name="M:Steamworks.SteamUserStats.FindOrCreateLeaderboardAsync(System.String,Steamworks.Data.LeaderboardSort,Steamworks.Data.LeaderboardDisplay)"> + <summary> + Gets a leaderboard by name, it will create it if it's not yet created. + Leaderboards created with this function will not automatically show up in the Steam Community. + You must manually set the Community Name field in the App Admin panel of the Steamworks website. + As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on + the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of + dynamically created leaderboards. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Int32)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Single)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Int32)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Single)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatInt(System.String)"> + <summary> + Get a Int stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatFloat(System.String)"> + <summary> + Get a float stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.ResetAll(System.Boolean)"> + <summary> + Practically wipes the slate clean for this user. If includeAchievements is true, will wipe + any achievements too. + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamUtils"> + <summary> + Interface which provides access to a range of miscellaneous utility functions + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnIpCountryChanged"> + <summary> + The country of the user changed + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnLowBatteryPower"> + <summary> + Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute + The parameter is the number of minutes left + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnSteamShutdown"> + <summary> + Called when Steam wants to shutdown + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnGamepadTextInputDismissed"> + <summary> + Big Picture gamepad text input has been closed. Parameter is true if text was submitted, false if cancelled etc. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceAppActive"> + <summary> + Returns the number of seconds since the application was active + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceComputerActive"> + <summary> + Returns the number of seconds since the user last moved the mouse etc + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamServerTime"> + <summary> + Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IpCountry"> + <summary> + returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + e.g "US" or "UK". + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImageSize(System.Int32,System.UInt32@,System.UInt32@)"> + <summary> + returns true if the image exists, and the buffer was successfully filled out + results are returned in RGBA format + the destination buffer size should be 4 * height * width * sizeof(char) + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImage(System.Int32)"> + <summary> + returns the image in RGBA format + </summary> + </member> + <member name="P:Steamworks.SteamUtils.UsingBatteryPower"> + <summary> + Returns true if we're using a battery (ie, a laptop not plugged in) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.CurrentBatteryPower"> + <summary> + Returns battery power [0-1] + </summary> + </member> + <member name="P:Steamworks.SteamUtils.OverlayNotificationPosition"> + <summary> + Sets the position where the overlay instance for the currently calling game should show notifications. + This position is per-game and if this function is called from outside of a game context it will do nothing. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsOverlayEnabled"> + <summary> + Returns true if the overlay is running and the user can access it. The overlay process could take a few seconds to + start and hook the game process, so this function will initially return false while the overlay is loading. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.DoesOverlayNeedPresent"> + <summary> + Normally this call is unneeded if your game has a constantly running frame loop that calls the + D3D Present API, or OGL SwapBuffers API every frame. + + However, if you have a game that only refreshes the screen on an event driven basis then that can break + the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + need to Present() to the screen any time an even needing a notification happens or when the overlay is + brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.CheckFileSignatureAsync(System.String)"> + <summary> + Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + of the partner site, for example to refuse to load modified executable files. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.ShowGamepadTextInput(Steamworks.GamepadTextInputMode,Steamworks.GamepadTextInputLineMode,System.String,System.Int32,System.String)"> + <summary> + Activates the Big Picture text input dialog which only supports gamepad input + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetEnteredGamepadText"> + <summary> + Returns previously entered text + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamUILanguage"> + <summary> + returns the language the steam client is running in, you probably want + Apps.CurrentGameLanguage instead, this is for very special usage cases + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamRunningInVR"> + <summary> + returns true if Steam itself is running in VR mode + </summary> + </member> + <member name="M:Steamworks.SteamUtils.SetOverlayNotificationInset(System.Int32,System.Int32)"> + <summary> + Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamInBigPictureMode"> + <summary> + returns true if Steam and the Steam Overlay are running in Big Picture mode + Games much be launched through the Steam client to enable the Big Picture overlay. During development, + a game can be added as a non-steam game to the developers library to test this feature + </summary> + </member> + <member name="M:Steamworks.SteamUtils.StartVRDashboard"> + <summary> + ask SteamUI to create and render its OpenVR dashboard + </summary> + </member> + <member name="P:Steamworks.SteamUtils.VrHeadsetStreaming"> + <summary> + Set whether the HMD content will be streamed via Steam In-Home Streaming + If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + (this is useful for games that have asymmetric multiplayer gameplay) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamChinaLauncher"> + <summary> + Returns whether this steam client is a Steam China specific client, vs the global client + </summary> + </member> + <member name="T:Steamworks.SteamVideo"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="P:Steamworks.SteamVideo.IsBroadcasting"> + <summary> + Return true if currently using Steam's live broadcasting + </summary> + </member> + <member name="P:Steamworks.SteamVideo.NumViewers"> + <summary> + If we're broadcasting, will return the number of live viewers + </summary> + </member> + <member name="P:Steamworks.Controller.ActionSet"> + <summary> + Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + our state loops, instead of trying to place it in all of your state transitions. + </summary> + </member> + <member name="M:Steamworks.Controller.GetDigitalState(System.String)"> + <summary> + Returns the current state of the supplied digital game action + </summary> + </member> + <member name="M:Steamworks.Controller.GetAnalogState(System.String)"> + <summary> + Returns the current state of these supplied analog game action + </summary> + </member> + <member name="P:Steamworks.Friend.IsMe"> + <summary> + Returns true if this is the local user + </summary> + </member> + <member name="P:Steamworks.Friend.IsFriend"> + <summary> + Return true if this is a friend + </summary> + </member> + <member name="P:Steamworks.Friend.IsBlocked"> + <summary> + Returns true if you have this user blocked + </summary> + </member> + <member name="P:Steamworks.Friend.IsPlayingThisGame"> + <summary> + Return true if this user is playing the game we're running + </summary> + </member> + <member name="P:Steamworks.Friend.IsOnline"> + <summary> + Returns true if this friend is online + </summary> + </member> + <member name="M:Steamworks.Friend.RequestInfoAsync"> + <summary> + Sometimes we don't know the user's name. This will wait until we have + downloaded the information on this user. + </summary> + </member> + <member name="P:Steamworks.Friend.IsAway"> + <summary> + Returns true if this friend is marked as away + </summary> + </member> + <member name="P:Steamworks.Friend.IsBusy"> + <summary> + Returns true if this friend is marked as busy + </summary> + </member> + <member name="P:Steamworks.Friend.IsSnoozing"> + <summary> + Returns true if this friend is marked as snoozing + </summary> + </member> + <member name="M:Steamworks.Friend.InviteToGame(System.String)"> + <summary> + Invite this friend to the game that we are playing + </summary> + </member> + <member name="M:Steamworks.Friend.SendMessage(System.String)"> + <summary> + Sends a message to a Steam friend. Returns true if success + </summary> + </member> + <member name="M:Steamworks.Friend.RequestUserStatsAsync"> + <summary> + Tries to get download the latest user stats + </summary> + <returns>True if successful, False if failure</returns> + </member> + <member name="M:Steamworks.Friend.GetStatFloat(System.String,System.Single)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetStatInt(System.String,System.Int32)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievement(System.String,System.Boolean)"> + <summary> + Gets a user achievement state. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievementUnlockTime(System.String)"> + <summary> + Gets a the time this achievement was unlocked. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <returns>The time unlocked. If it wasn't unlocked, or you haven't downloaded the stats yet - will return DateTime.MinValue</returns> + </member> + <member name="P:Steamworks.InventoryDef.Name"> + <summary> + Shortcut to call GetProperty( "name" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Description"> + <summary> + Shortcut to call GetProperty( "description" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrl"> + <summary> + Shortcut to call GetProperty( "icon_url" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrlLarge"> + <summary> + Shortcut to call GetProperty( "icon_url_large" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.PriceCategory"> + <summary> + Shortcut to call GetProperty( "price_category" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Type"> + <summary> + Shortcut to call GetProperty( "type" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IsGenerator"> + <summary> + Returns true if this is an item that generates an item, rather + than something that is actual an item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.ExchangeSchema"> + <summary> + Shortcut to call GetProperty( "exchange" ) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipes"> + <summary> + Get a list of exchanges that are available to make this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Marketable"> + <summary> + Shortcut to call GetBoolProperty( "marketable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Tradable"> + <summary> + Shortcut to call GetBoolProperty( "tradable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Created"> + <summary> + Gets the property timestamp + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Modified"> + <summary> + Gets the property modified + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty(System.String)"> + <summary> + Get a specific property by name + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetBoolProperty(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty``1(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Properties"> + <summary> + Gets a list of all properties on this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalPrice"> + <summary> + Returns the price of this item in the local currency (SteamInventory.Currency) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalBasePrice"> + <summary> + If the price has been discounted, LocalPrice will differ from LocalBasePrice + (assumed, this isn't documented) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipesContainingThis"> + <summary> + Return a list of recepies that contain this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Properties"> + <summary> + Only available if the result set was created with the getproperties + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsNoTrade"> + <summary> + This item is account-locked and cannot be traded or given away. + This is an item status flag which is permanently attached to specific item instances + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsRemoved"> + <summary> + The item has been destroyed, traded away, expired, or otherwise invalidated. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsConsumed"> + <summary> + The item quantity has been decreased by 1 via ConsumeItem API. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="M:Steamworks.InventoryItem.ConsumeAsync(System.Int32)"> + <summary> + Consumes items from a user's inventory. If the quantity of the given item goes to zero, it is permanently removed. + Once an item is removed it cannot be recovered.This is not for the faint of heart - if your game implements item removal at all, + a high-friction UI confirmation process is highly recommended.ConsumeItem can be restricted to certain item definitions or fully + blocked via the Steamworks website to minimize support/abuse issues such as the classic "my brother borrowed my laptop and deleted all of my rare items". + </summary> + </member> + <member name="M:Steamworks.InventoryItem.SplitStackAsync(System.Int32)"> + <summary> + Split stack into two items + </summary> + </member> + <member name="M:Steamworks.InventoryItem.AddAsync(Steamworks.InventoryItem,System.Int32)"> + <summary> + Add x units of the target item to this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Acquired"> + <summary> + Will try to return the date that this item was aquired. You need to have for the items + with their properties for this to work. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Origin"> + <summary> + Tries to get the origin property. Need properties for this to work. + Will return a string like "market" + </summary> + </member> + <member name="T:Steamworks.InventoryItem.Amount"> + <summary> + Small utility class to describe an item with a quantity + </summary> + </member> + <member name="T:Steamworks.InventoryRecipe"> + <summary> + A structured description of an item exchange + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.DefinitionId"> + <summary> + The definition ID of the ingredient. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Definition"> + <summary> + If we don't know about this item definition this might be null. + In which case, DefinitionId should still hold the correct id. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Count"> + <summary> + The amount of this item needed. Generally this will be 1. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Result"> + <summary> + The item that this will create. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredients"> + <summary> + The items, with quantity required to create this item. + </summary> + </member> + <member name="M:Steamworks.InventoryResult.BelongsTo(Steamworks.SteamId)"> + <summary> + Checks whether an inventory result handle belongs to the specified Steam ID. + This is important when using Deserialize, to verify that a remote player is not pretending to have a different user's inventory + </summary> + </member> + <member name="M:Steamworks.InventoryResult.Serialize"> + <summary> + Serialized result sets contain a short signature which can't be forged or replayed across different game sessions. + A result set can be serialized on the local client, transmitted to other players via your game networking, and + deserialized by the remote players.This is a secure way of preventing hackers from lying about posessing + rare/high-value items. Serializes a result set with signature bytes to an output buffer.The size of a serialized + result depends on the number items which are being serialized.When securely transmitting items to other players, + it is recommended to use GetItemsByID first to create a minimal result set. + Results have a built-in timestamp which will be considered "expired" after an hour has elapsed.See DeserializeResult + for expiration handling. + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.Owner"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.MetaData"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.JoinAsync"> + <summary> + Will attempt to join the party. If successful will return a connection string. + If failed, will return null + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.OnReservationCompleted(Steamworks.SteamId)"> + <summary> + When a user follows your beacon, Steam will reserve one of the open party slots for them, and send your game a ReservationNotification callback. + When that user joins your party, call OnReservationCompleted to notify Steam that the user has joined successfully + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.CancelReservation(Steamworks.SteamId)"> + <summary> + To cancel a reservation (due to timeout or user input), call this. + Steam will open a new reservation slot. + Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.Destroy"> + <summary> + Turn off the beacon + </summary> + </member> + <member name="T:Steamworks.SteamServerInit"> + <summary> + Used to set up the server. + The variables in here are all required to be set, and can't be changed once the server is created. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.VersionString"> + <summary> + The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. + If you go into the dedicated server tab on steamworks you'll be able to server the latest version. If this version number is + less than that latest version then your server won't show. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.ModDir"> + <summary> + This should be the same directory game where gets installed into. Just the folder name, not the whole path. I.e. "Rust", "Garrysmod". + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.GameDescription"> + <summary> + The game description. Setting this to the full name of your game is recommended. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.DedicatedServer"> + <summary> + Is a dedicated server + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithRandomSteamPort"> + <summary> + Set the Steam quert port + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithQueryShareGamePort"> + <summary> + If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE into usQueryPort, then it causes the game server API to use + "GameSocketShare" mode, which means that the game is responsible for sending and receiving UDP packets for the master + server updater. + + More info about this here: https://partner.steamgames.com/doc/api/ISteamGameServer#HandleIncomingPacket + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewCommunityFile"> + <summary> + Create a Normal Workshop item that can be subscribed to + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewMicrotransactionFile"> + <summary> + Workshop item that is meant to be voted on for the purpose of selling in-game + </summary> + </member> + <member name="F:Steamworks.Ugc.PublishResult.NeedsWorkshopAgreement"> + <summary> + https://partner.steamgames.com/doc/features/workshop/implementation#Legal + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Id"> + <summary> + The actual ID of this file + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Title"> + <summary> + The given title of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Description"> + <summary> + The description of this item, in your local language if available + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Tags"> + <summary> + A list of tags for this item, all lowercase + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CreatorApp"> + <summary> + App Id of the app that created this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ConsumerApp"> + <summary> + App Id of the app that will consume this item. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Owner"> + <summary> + User who created this content + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Score"> + <summary> + The bayesian average for up votes / total votes, between [0,1] + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Created"> + <summary> + Time when the published item was created + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Updated"> + <summary> + Time when the published item was last updated + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPublic"> + <summary> + True if this is publically visible + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsFriendsOnly"> + <summary> + True if this item is only visible by friends of the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPrivate"> + <summary> + True if this is only visible to the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsBanned"> + <summary> + True if this item has been banned + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsAcceptedForUse"> + <summary> + Whether the developer of this app has specifically flagged this item as accepted in the Workshop + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesUp"> + <summary> + The number of upvotes of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesDown"> + <summary> + The number of downvotes of this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Download(System.Boolean)"> + <summary> + Start downloading this item. + If this returns false the item isn't getting downloaded. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesTotal"> + <summary> + If we're downloading, how big the total download is + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesDownloaded"> + <summary> + If we're downloading, how much we've downloaded + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.SizeBytes"> + <summary> + If we're installed, how big is the install + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadAmount"> + <summary> + If we're downloading our current progress as a delta betwen 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.HasTag(System.String)"> + <summary> + A case insensitive check for tag + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Subscribe"> + <summary> + Allows the user to subscribe to this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.DownloadAsync(System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Allows the user to subscribe to download this item asyncronously + If CancellationToken is default then there is 60 seconds timeout + Progress will be set to 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Unsubscribe"> + <summary> + Allows the user to unsubscribe from this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.AddFavorite"> + <summary> + Adds item to user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.RemoveFavorite"> + <summary> + Removes item from user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Vote(System.Boolean)"> + <summary> + Allows the user to rate a workshop item up or down. + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.GetUserVote"> + <summary> + Gets the current users vote on the item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Url"> + <summary> + Return a URL to view this item online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ChangelogUrl"> + <summary> + The URl to view this item's changelog + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CommentsUrl"> + <summary> + The URL to view the comments on this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DiscussUrl"> + <summary> + The URL to discuss this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.StatsUrl"> + <summary> + The URL to view this items stats online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.PreviewImageUrl"> + <summary> + The URL to the preview image for this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Edit"> + <summary> + Edit this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAnyTag"> + <summary> + Found items must have at least one of the defined tags + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAllTags"> + <summary> + Found items must have all defined tags + </summary> + </member> + <member name="P:Steamworks.Epoch.Current"> + <summary> + Returns the current Unix Epoch + </summary> + </member> + <member name="M:Steamworks.Epoch.ToDateTime(System.Decimal)"> + <summary> + Convert an epoch to a datetime + </summary> + </member> + <member name="M:Steamworks.Epoch.FromDateTime(System.DateTime)"> + <summary> + Convert a DateTime to a unix time + </summary> + </member> + <member name="M:Steamworks.Helpers.TakeBuffer(System.Int32)"> + <summary> + Returns a buffer. This will get returned and reused later on. + </summary> + </member> + <member name="T:Steamworks.PreserveAttribute"> + <summary> + Prevent unity from stripping shit we depend on + https://docs.unity3d.com/Manual/ManagedCodeStripping.html + </summary> + </member> + </members> +</doc> diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.xml.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.xml.meta new file mode 100644 index 0000000..5e5f20c --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Posix.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f13b7820b3a9b6145a8ea48a92291748 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.dll b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.dll Binary files differnew file mode 100644 index 0000000..f7f75ea --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.dll diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.dll.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.dll.meta new file mode 100644 index 0000000..c824695 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: fb41692bc4208c0449c96c0576331408 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 0 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 0 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86 + DefaultValueInitialized: true + OS: Windows + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.pdb b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.pdb Binary files differnew file mode 100644 index 0000000..e8a9270 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.pdb diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.pdb.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.pdb.meta new file mode 100644 index 0000000..0d4f596 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8b8e838f93aba6a47a16dbe26efbe02d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.xml b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.xml new file mode 100644 index 0000000..176b6b1 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.xml @@ -0,0 +1,3474 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Facepunch.Steamworks.Win32</name> + </assembly> + <members> + <member name="T:Steamworks.CallResult`1"> + <summary> + An awaitable version of a SteamAPICall_t + </summary> + </member> + <member name="M:Steamworks.CallResult`1.OnCompleted(System.Action)"> + <summary> + This gets called if IsComplete returned false on the first call. + The Action "continues" the async call. We pass it to the Dispatch + to be called when the callback returns. + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetResult"> + <summary> + Gets the result. This is called internally by the async shit. + </summary> + </member> + <member name="P:Steamworks.CallResult`1.IsCompleted"> + <summary> + Return true if complete or failed + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetAwaiter"> + <summary> + This is what makes this struct awaitable + </summary> + </member> + <member name="T:Steamworks.ICallbackData"> + <summary> + Gives us a generic way to get the CallbackId of structs + </summary> + </member> + <member name="M:Steamworks.AuthTicket.Cancel"> + <summary> + Cancels a ticket. + You should cancel your ticket when you close the game or leave a server. + </summary> + </member> + <member name="T:Steamworks.Dispatch"> + <summary> + Responsible for all callback/callresult handling + + This manually pumps Steam's message queue and dispatches those + events to any waiting callbacks/callresults. + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnDebugCallback"> + <summary> + If set then we'll call this function every time a callback is generated. + + This is SLOW!! - it's for debugging - don't keep it on all the time. If you want to access a specific + callback then please create an issue on github and I'll add it! + + Params are : [Callback Type] [Callback Contents] [server] + + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnException"> + <summary> + Called if an exception happens during a callback/callresult. + This is needed because the exception isn't always accessible when running + async.. and can fail silently. With this hooked you won't be stuck wondering + what happened. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Init"> + <summary> + This gets called from Client/Server Init + It's important to switch to the manual dispatcher + </summary> + </member> + <member name="F:Steamworks.Dispatch.runningFrame"> + <summary> + Make sure we don't call Frame in a callback - because that'll cause some issues for everyone. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Frame(Steamworks.Data.HSteamPipe)"> + <summary> + Calls RunFrame and processes events from this Steam Pipe + </summary> + </member> + <member name="F:Steamworks.Dispatch.actionsToCall"> + <summary> + To be safe we don't call the continuation functions while iterating + the Callback list. This is maybe overly safe because the only way this + could be an issue is if the callback list is modified in the continuation + which would only happen if starting or shutting down in the callback. + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessCallback(Steamworks.Dispatch.CallbackMsg_t,System.Boolean)"> + <summary> + A callback is a general global message + </summary> + </member> + <member name="M:Steamworks.Dispatch.CallbackToString(Steamworks.CallbackType,System.IntPtr,System.Int32)"> + <summary> + Given a callback, try to turn it into a string + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessResult(Steamworks.Dispatch.CallbackMsg_t)"> + <summary> + A result is a reply to a specific command + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopClientAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopServerAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.OnCallComplete``1(Steamworks.Data.SteamAPICall_t,System.Action,System.Boolean)"> + <summary> + Watch for a steam api call + </summary> + </member> + <member name="M:Steamworks.Dispatch.Install``1(System.Action{``0},System.Boolean)"> + <summary> + Install a global callback. The passed function will get called if it's all good. + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.Numeric"> + <summary> + The score is just a simple numerical value + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeSeconds"> + <summary> + The score represents a time, in seconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeMilliSeconds"> + <summary> + The score represents a time, in milliseconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Ascending"> + <summary> + The top-score is the lowest number + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Descending"> + <summary> + The top-score is the highest number + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Unreliable"> + <summary> + Send the message unreliably. Can be lost. Messages *can* be larger than a + single MTU (UDP packet), but there is no retransmission, so if any piece + of the message is lost, the entire message will be dropped. + + The sending API does have some knowledge of the underlying connection, so + if there is no NAT-traversal accomplished or there is a recognized adjustment + happening on the connection, the packet will be batched until the connection + is open again. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoNagle"> + <summary> + Disable Nagle's algorithm. + By default, Nagle's algorithm is applied to all outbound messages. This means + that the message will NOT be sent immediately, in case further messages are + sent soon after you send this, which can be grouped together. Any time there + is enough buffered data to fill a packet, the packets will be pushed out immediately, + but partially-full packets not be sent until the Nagle timer expires. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoDelay"> + <summary> + If the message cannot be sent very soon (because the connection is still doing some initial + handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable + messages. Using this flag on reliable messages is invalid. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Reliable"> + Reliable message send. Can send up to 0.5mb in a single message. + Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for + efficient sends of large chunks of data. + </member> + <member name="P:Steamworks.Data.NetIdentity.LocalHost"> + <summary> + Return a NetIdentity that represents LocalHost + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.IsLocalHost"> + <summary> + Return true if this identity is localhost + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.SteamId)~Steamworks.Data.NetIdentity"> + <summary> + Convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetAddress)~Steamworks.Data.NetIdentity"> + <summary> + Set the specified Address + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetIdentity)~Steamworks.SteamId"> + <summary> + Automatically convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="P:Steamworks.Data.NetIdentity.SteamId"> + <summary> + Returns NULL if we're not a SteamId + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.Address"> + <summary> + Returns NULL if we're not a NetAddress + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.ToString"> + <summary> + We override tostring to provide a sensible representation + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Port"> + <summary> + The Port. This is redundant documentation. + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.AnyIp(System.UInt16)"> + <summary> + Any IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.LocalHost(System.UInt16)"> + <summary> + Localhost IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.String,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.Net.IPAddress,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Cleared"> + <summary> + Set everything to zero + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv6AllZeros"> + <summary> + Return true if the IP is ::0. (Doesn't check port.) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv4"> + <summary> + Return true if IP is mapped IPv4 + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsLocalHost"> + <summary> + Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Address"> + <summary> + Get the Address section + </summary> + </member> + <member name="T:Steamworks.Data.Connection"> + <summary> + Used as a base to create your client connection. This creates a socket + to a single connection. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Accept"> + <summary> + Accept an incoming connection that has been received on a listen socket. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Close(System.Boolean,System.Int32,System.String)"> + <summary> + Disconnects from the remote host and invalidates the connection handle. Any unread data on the connection is discarded.. + reasonCode is defined and used by you. + </summary> + </member> + <member name="P:Steamworks.Data.Connection.UserData"> + <summary> + Get/Set connection user data + </summary> + </member> + <member name="P:Steamworks.Data.Connection.ConnectionName"> + <summary> + A name for the connection, used mostly for debugging + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.IntPtr,System.Int32,Steamworks.Data.SendType)"> + <summary> + This is the best version to use. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],System.Int32,System.Int32,Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.String,Steamworks.Data.SendType)"> + <summary> + This creates a ton of garbage - so don't do anything with this beyond testing! + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Flush"> + <summary> + Flush any messages waiting on the Nagle timer and send them at the next transmission + opportunity (often that means right now). + </summary> + </member> + <member name="M:Steamworks.Data.Connection.DetailedStatus"> + <summary> + Returns detailed connection stats in text format. Useful + for dumping to a log, etc. + </summary> + <returns>Plain text connection info</returns> + </member> + <member name="T:Steamworks.Data.ConnectionInfo"> + <summary> + Describe the state of a connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.State"> + <summary> + High level state of the connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Address"> + <summary> + Remote address. Might be all 0's if we don't know it, or if this is N/A. + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Identity"> + <summary> + Who is on the other end? Depending on the connection type and phase of the connection, we might not know + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.EndReason"> + <summary> + Basic cause of the connection termination or problem. + </summary> + </member> + <member name="T:Steamworks.Data.NetPingLocation"> + <summary> + + Object that describes a "location" on the Internet with sufficient + detail that we can reasonably estimate an upper bound on the ping between + the two hosts, even if a direct route between the hosts is not possible, + and the connection must be routed through the Steam Datagram Relay network. + This does not contain any information that identifies the host. Indeed, + if two hosts are in the same building or otherwise have nearly identical + networking characteristics, then it's valid to use the same location + object for both of them. + + NOTE: This object should only be used in the same process! Do not serialize it, + send it over the wire, or persist it in a file or database! If you need + to do that, convert it to a string representation using the methods in + ISteamNetworkingUtils(). + + </summary> + </member> + <member name="M:Steamworks.Data.NetPingLocation.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + Estimate the round-trip latency between two arbitrary locations, in + milliseconds. This is a conservative estimate, based on routing through + the relay network. For most basic relayed connections, this ping time + will be pretty accurate, since it will be based on the route likely to + be actually used. + + If a direct IP route is used (perhaps via NAT traversal), then the route + will be different, and the ping time might be better. Or it might actually + be a bit worse! Standard IP routing is frequently suboptimal! + + But even in this case, the estimate obtained using this method is a + reasonable upper bound on the ping time. (Also it has the advantage + of returning immediately and not sending any packets.) + + In a few cases we might not able to estimate the route. In this case + a negative value is returned. k_nSteamNetworkingPing_Failed means + the reason was because of some networking difficulty. (Failure to + ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + currently answer the question for some other reason. + + Do you need to be able to do this from a backend/matchmaking server? + You are looking for the "ticketgen" library. + </member> + <member name="M:Steamworks.Data.Socket.Close"> + <summary> + Destroy a listen socket. All the connections that were accepting on the listen + socket are closed ungracefully. + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.State"> + <summary> + True if unlocked + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.UnlockTime"> + <summary> + Should hold the unlock time if State is true + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIcon"> + <summary> + Gets the icon of the achievement. This can return a null image even though the image exists if the image + hasn't been downloaded by Steam yet. You can use GetIconAsync if you want to wait for the image to be downloaded. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIconAsync(System.Int32)"> + <summary> + Gets the icon of the achievement, waits for it to load if we have to + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.GlobalUnlocked"> + <summary> + Returns the fraction (0-1) of users who have unlocked the specified achievement, or -1 if no data available. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Trigger(System.Boolean)"> + <summary> + Make this achievement earned + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Clear"> + <summary> + Reset this achievement to not achieved + </summary> + </member> + <member name="T:Steamworks.Data.DurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Appid"> + <summary> + appid generating playtime + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Applicable"> + <summary> + is duration control applicable to user + game combination + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeInLastFiveHours"> + <summary> + playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeToday"> + <summary> + playtime on current calendar day + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Progress"> + <summary> + recommended progress + </summary> + </member> + <member name="P:Steamworks.Data.Leaderboard.Name"> + <summary> + the name of a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.ReplaceScore(System.Int32,System.Int32[])"> + <summary> + Submit your score and replace your old score even if it was better + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.SubmitScoreAsync(System.Int32,System.Int32[])"> + <summary> + Submit your new score, but won't replace your high score if it's lower + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.AttachUgc(Steamworks.Data.Ugc)"> + <summary> + Attaches a piece of user generated content the user's entry on a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAsync(System.Int32,System.Int32)"> + <summary> + Used to query for a sequential range of leaderboard entries by leaderboard Sort. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAroundUserAsync(System.Int32,System.Int32)"> + <summary> + Used to retrieve leaderboard entries relative a user's entry. If there are not enough entries in the leaderboard + before or after the user's entry, Steam will adjust the range to try to return the number of entries requested. + For example, if the user is #1 on the leaderboard and start is set to -2, end is set to 2, Steam will return the first + 5 entries in the leaderboard. If The current user has no entry, this will return null. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresFromFriendsAsync"> + <summary> + Used to retrieve all leaderboard entries for friends of the current user + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Join"> + <summary> + Try to join this room. Will return RoomEnter.Success on success, + and anything else is a failure + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Leave"> + <summary> + Leave a lobby; this will take effect immediately on the client side + other users in the lobby will be notified by a LobbyChatUpdate_t callback + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.InviteFriend(Steamworks.SteamId)"> + <summary> + Invite another user to the lobby + will return true if the invite is successfully sent, whether or not the target responds + returns false if the local user is not connected to the Steam servers + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MemberCount"> + <summary> + returns the number of users in the specified lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Members"> + <summary> + Returns current members. Need to be in the lobby to see the users. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetData(System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetData(System.String,System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.DeleteData(System.String)"> + <summary> + Removes a metadata key from the lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Data"> + <summary> + Get all data for this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetMemberData(Steamworks.Friend,System.String)"> + <summary> + Gets per-user metadata for someone in this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetMemberData(System.String,System.String)"> + <summary> + Sets per-user metadata (for the local user implicitly) + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatString(System.String)"> + <summary> + Sends a string to the chat room + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatBytes(System.Byte[])"> + <summary> + Sends bytes the the chat room + this isn't exposed because there's no way to read raw bytes atm, + and I figure people can send json if they want something more advanced + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Refresh"> + <summary> + Refreshes metadata for a lobby you're not necessarily in right now + you never do this for lobbies you're a member of, only if your + this will send down all the metadata associated with a lobby + this is an asynchronous call + returns false if the local user is not connected to the Steam servers + results will be returned by a LobbyDataUpdate_t callback + if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MaxMembers"> + <summary> + Max members able to join this lobby. Cannot be over 250. + Can only be set by the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(Steamworks.SteamId)"> + <summary> + [SteamID variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(System.String,System.UInt16)"> + <summary> + [IP/Port variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetGameServer(System.UInt32@,System.UInt16@,Steamworks.SteamId@)"> + <summary> + Gets the details of the lobby's game server, if set. Returns true if the lobby is + valid and has a server set, otherwise returns false. + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Owner"> + <summary> + You must be the lobby owner to set the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.IsOwnedBy(Steamworks.SteamId)"> + <summary> + Check if the specified SteamId owns the lobby + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceClose"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceFar"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceWorldwide"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithKeyValue(System.String,System.String)"> + <summary> + Filter by specified key/value pair; string parameters + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithLower(System.String,System.Int32)"> + <summary> + Numerical filter where value is less than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithHigher(System.String,System.Int32)"> + <summary> + Numerical filter where value is greater than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must be equal to the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithNotEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must not equal the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.AddNumericalFilter(System.String,System.Int32,Steamworks.LobbyComparison)"> + <summary> + Test key, initialize numerical filter list if necessary, then add new numerical filter + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.OrderByNear(System.String,System.Int32)"> + <summary> + Order filtered results according to key/values nearest the provided key/value pair. + Can specify multiple near value filters; each successive filter is lower priority than the previous. + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithSlotsAvailable(System.Int32)"> + <summary> + returns only lobbies with the specified number of slots available + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithMaxResults(System.Int32)"> + <summary> + sets how many results to return, the lower the count the faster it is to download the lobby results + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.RequestAsync"> + <summary> + Run the query, get the matching lobbies + </summary> + </member> + <member name="T:Steamworks.Data.OutgoingPacket"> + <summary> + A server query packet. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Address"> + <summary> + Target IP address + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Port"> + <summary> + Target port + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Data"> + <summary> + This data is pooled. Make a copy if you don't use it immediately. + This buffer is also quite large - so pay attention to Size. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Size"> + <summary> + Size of the data + </summary> + </member> + <member name="T:Steamworks.Data.RemotePlaySession"> + <summary> + Represents a RemotePlaySession from the SteamRemotePlay interface + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.IsValid"> + <summary> + Returns true if this session was valid when created. This will stay true even + after disconnection - so be sure to watch SteamRemotePlay.OnSessionDisconnected + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.SteamId"> + <summary> + Get the SteamID of the connected user + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.ClientName"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.FormFactor"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagUser(Steamworks.SteamId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.SetLocation(System.String)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagPublishedFile(Steamworks.Data.PublishedFileId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="P:Steamworks.Data.ServerInfo.Tags"> + <summary> + Gets the individual tags for this server + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToHistory"> + <summary> + Add this server to our history list + If we're already in the history list, weill set the last played time to now + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.QueryRulesAsync"> + <summary> + If this server responds to source engine style queries, we'll be able to get a list of rules here + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromHistory"> + <summary> + Remove this server from our history list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToFavourites"> + <summary> + Add this server to our favourite list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromFavourites"> + <summary> + Remove this server from our favourite list + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultStatus(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Find out the status of an asynchronous inventory result handle. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultItems(Steamworks.Data.SteamInventoryResult_t,Steamworks.Data.SteamItemDetails_t[],System.UInt32@)"> + <summary> + Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultTimestamp(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.CheckResultSteamID(Steamworks.Data.SteamInventoryResult_t,Steamworks.SteamId)"> + <summary> + Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.DestroyResult(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Destroys a result handle and frees all associated memory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetAllItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + Captures the entire state of the current users Steam inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetItemsByID(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId@,System.UInt32)"> + <summary> + Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GrantPromoItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only). + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.ConsumeItem(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId,System.UInt32)"> + <summary> + ConsumeItem() removes items from the inventory permanently. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.SendItemDropHeartbeat"> + <summary> + Deprecated method. Playtime accounting is performed on the Steam servers. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.TriggerItemDrop(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryDefId)"> + <summary> + Playtime credit must be consumed and turned into item drops by your game. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.LoadItemDefinitions"> + <summary> + LoadItemDefinitions triggers the automatic load and refresh of item definitions. + </summary> + </member> + <member name="M:Steamworks.ISteamUserStats.DownloadLeaderboardEntriesForUsers(Steamworks.Data.SteamLeaderboard_t,Steamworks.SteamId[],System.Int32)"> + <summary> + Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.Interface"> + <summary> + An optional interface to use instead of deriving + </summary> + </member> + <member name="F:Steamworks.ConnectionManager.Connection"> + <summary> + The actual connection we're managing + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.ConnectionInfo"> + <summary> + The last received ConnectionInfo + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We're trying to connect! + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We started connecting to this guy + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + We got disconnected + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnMessage(System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Must call Accept or Close on the connection within a second or so + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection leaves + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnMessage(Steamworks.Data.Connection,Steamworks.Data.NetIdentity,System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message from a connection + </summary> + </member> + <member name="T:Steamworks.SocketManager"> + <summary> + Used as a base to create your networking server. This creates a socket + and listens/communicates with multiple queries. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Default behaviour is to accept every connection + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="P:Steamworks.ServerList.Base.AppId"> + <summary> + Which app we're querying. Defaults to the current app. + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnChanges"> + <summary> + When a new server is added, this function will get called + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnResponsiveServer"> + <summary> + Called for every responsive server + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Responsive"> + <summary> + A list of servers that responded. If you're only interested in servers that responded since you + last updated, then simply clear this list. + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Unresponsive"> + <summary> + A list of servers that were in the master list but didn't respond. + </summary> + </member> + <member name="M:Steamworks.ServerList.Base.RunQueryAsync(System.Single)"> + <summary> + Query the server list. Task result will be true when finished + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamApps"> + <summary> + Exposes a wide range of information and actions for applications and Downloadable Content (DLC). + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnDlcInstalled"> + <summary> + posted after the user gains ownership of DLC and that DLC is installed + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnNewLaunchParameters"> + <summary> + posted after the user gains executes a Steam URL with command line or query parameters + such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc + while the game is already running. The new params can be queried + with GetLaunchQueryParam and GetLaunchCommandLine + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribed"> + <summary> + Checks if the active user is subscribed to the current App ID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFamilySharing"> + <summary> + Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsLowVoilence"> + <summary> + Checks if the license owned by the user provides low violence depots. + Low violence depots are useful for copies sold in countries that have content restrictions + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsCybercafe"> + <summary> + Checks whether the current App ID license is for Cyber Cafes. + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsVACBanned"> + <summary> + CChecks if the user has a VAC ban on their account + </summary> + </member> + <member name="P:Steamworks.SteamApps.GameLanguage"> + <summary> + Gets the current language that the user has set. + This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AvailableLanguages"> + <summary> + Gets a list of the languages the current app supports. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsSubscribedToApp(Steamworks.AppId)"> + <summary> + Checks if the active user is subscribed to a specified AppId. + Only use this if you need to check ownership of another game related to yours, a demo for example. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsDlcInstalled(Steamworks.AppId)"> + <summary> + Checks if the user owns a specific DLC and if the DLC is installed + </summary> + </member> + <member name="M:Steamworks.SteamApps.PurchaseTime(Steamworks.AppId)"> + <summary> + Returns the time of the purchase of the app + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFreeWeekend"> + <summary> + Checks if the user is subscribed to the current app through a free weekend + This function will return false for users who have a retail or other type of license + Before using, please ask your Valve technical contact how to package and secure your free weekened + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcInformation"> + <summary> + Returns metadata for all available DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.UninstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="P:Steamworks.SteamApps.CurrentBetaName"> + <summary> + Returns null if we're not on a beta branch, else the name of the branch + </summary> + </member> + <member name="M:Steamworks.SteamApps.MarkContentCorrupt(System.Boolean)"> + <summary> + Allows you to force verify game content on next launch. + + If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), + you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit. + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstalledDepots(Steamworks.AppId)"> + <summary> + Gets a list of all installed depots for a given App ID in mount order + </summary> + </member> + <member name="M:Steamworks.SteamApps.AppInstallDir(Steamworks.AppId)"> + <summary> + Gets the install folder for a specific AppID. + This works even if the application is not installed, based on where the game would be installed with the default Steam library location. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsAppInstalled(Steamworks.AppId)"> + <summary> + The app may not actually be owned by the current user, they may have it left over from a free weekend, etc. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AppOwner"> + <summary> + Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed.. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetLaunchParam(System.String)"> + <summary> + Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. + Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. + Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + but it is advised that you not param names beginning with an underscore for your own features. + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcDownloadProgress(Steamworks.AppId)"> + <summary> + Gets the download progress for optional DLC. + </summary> + </member> + <member name="P:Steamworks.SteamApps.BuildId"> + <summary> + Gets the buildid of this app, may change at any time based on backend updates to the game. + Defaults to 0 if you're not running a build downloaded from steam. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetFileDetailsAsync(System.String)"> + <summary> + Asynchronously retrieves metadata details about a specific file in the depot manifest. + Currently provides: + </summary> + </member> + <member name="P:Steamworks.SteamApps.CommandLine"> + <summary> + Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. + This method of passing a connect string (used when joining via rich presence, accepting an + invite, etc) is preferable to passing the connect string on the operating system command + line, which is a security risk. In order for rich presence joins to go through this + path and not be placed on the OS command line, you must set a value in your app's + configuration on Steam. Ask Valve for help with this. + </summary> + </member> + <member name="M:Steamworks.SteamClient.Init(System.UInt32,System.Boolean)"> + <summary> + Initialize the steam client. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="P:Steamworks.SteamClient.IsLoggedOn"> + <summary> + Checks if the current user's Steam client is connected to the Steam servers. + If it's not then no real-time services provided by the Steamworks API will be enabled. The Steam + client will automatically be trying to recreate the connection as often as possible. When the + connection is restored a SteamServersConnected_t callback will be posted. + You usually don't need to check for this yourself. All of the API calls that rely on this will + check internally. Forcefully disabling stuff when the player loses access is usually not a + very good experience for the player and you could be preventing them from accessing APIs that do not + need a live connection to Steam. + </summary> + </member> + <member name="P:Steamworks.SteamClient.SteamId"> + <summary> + Gets the Steam ID of the account currently logged into the Steam client. This is + commonly called the 'current user', or 'local user'. + A Steam ID is a unique identifier for a Steam accounts, Steam groups, Lobbies and Chat + rooms, and used to differentiate users in all parts of the Steamworks API. + </summary> + </member> + <member name="P:Steamworks.SteamClient.Name"> + <summary> + returns the local players name - guaranteed to not be NULL. + this is the same name as on the users community profile page + </summary> + </member> + <member name="P:Steamworks.SteamClient.State"> + <summary> + gets the status of the current user + </summary> + </member> + <member name="P:Steamworks.SteamClient.AppId"> + <summary> + returns the appID of the current process + </summary> + </member> + <member name="M:Steamworks.SteamClient.RestartAppIfNecessary(System.UInt32)"> + <summary> + Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't + this returns true then it starts the Steam client if required and launches your game again through it, + and you should quit your process as soon as possible. This effectively runs steam://run/AppId so it + may not relaunch the exact executable that called it, as it will always relaunch from the version + installed in your Steam library folder/ + Note that during development, when not launching via Steam, this might always return true. + </summary> + </member> + <member name="M:Steamworks.SteamClient.ValidCheck"> + <summary> + Called in interfaces that rely on this being initialized + </summary> + </member> + <member name="T:Steamworks.SteamFriends"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnChatMessage"> + <summary> + Called when chat message has been received from a friend. You'll need to turn on + ListenForFriendsMessages to recieve this. (friend, msgtype, message) + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnPersonaStateChange"> + <summary> + called when a friends' status changes + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameRichPresenceJoinRequested"> + <summary> + Called when the user tries to join a game from their friends list + rich presence will have been set with the "connect" key which is set here + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameOverlayActivated"> + <summary> + Posted when game overlay activates or deactivates + the game can use this to be pause or resume single player games + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameServerChangeRequested"> + <summary> + Called when the user tries to join a different game server from their friends list + game client should attempt to connect to specified server when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameLobbyJoinRequested"> + <summary> + Called when the user tries to join a lobby from their friends list + game client should attempt to connect to specified lobby when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnFriendRichPresenceUpdate"> + <summary> + Callback indicating updated data about friends rich presence information + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenOverlay(System.String)"> + <summary> + The dialog to open. Valid options are: + "friends", + "community", + "players", + "settings", + "officialgamegroup", + "stats", + "achievements". + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenUserOverlay(Steamworks.SteamId,System.String)"> + <summary> + "steamid" - Opens the overlay web browser to the specified user or groups profile. + "chat" - Opens a chat window to the specified user, or joins the group chat. + "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API. + "stats" - Opens the overlay web browser to the specified user's stats. + "achievements" - Opens the overlay web browser to the specified user's achievements. + "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend. + "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend. + "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite. + "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenStoreOverlay(Steamworks.AppId)"> + <summary> + Activates the Steam Overlay to the Steam store page for the provided app. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenWebOverlay(System.String,System.Boolean)"> + <summary> + Activates Steam Overlay web browser directly to the specified URL. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenGameInviteOverlay(Steamworks.SteamId)"> + <summary> + Activates the Steam Overlay to open the invite dialog. Invitations sent from this dialog will be for the provided lobby. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetPlayedWith(Steamworks.SteamId)"> + <summary> + Mark a target user as 'played with'. + NOTE: The current user must be in game with the other player for the association to work. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.RequestUserInformation(Steamworks.SteamId,System.Boolean)"> + <summary> + Requests the persona name and optionally the avatar of a specified user. + NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them. + returns true if we're fetching the data, false if we already have it + </summary> + </member> + <member name="M:Steamworks.SteamFriends.GetRichPresence(System.String)"> + <summary> + Find a rich presence value by key for current user. Will be null if not found. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetRichPresence(System.String,System.String)"> + <summary> + Sets a rich presence value by key for current user. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.ClearRichPresence"> + <summary> + Clears all of the current user's rich presence data. + </summary> + </member> + <member name="P:Steamworks.SteamFriends.ListenForFriendsMessages"> + <summary> + Listens for Steam friends chat messages. + You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. + After enabling this you will receive callbacks when ever the user receives a chat message. + </summary> + </member> + <member name="M:Steamworks.SteamInput.RunFrame"> + <summary> + You shouldn't really need to call this because it get called by RunCallbacks on SteamClient + but Valve think it might be a nice idea if you call it right before you get input info - + just to make sure the info you're getting is 100% up to date. + </summary> + </member> + <member name="P:Steamworks.SteamInput.Controllers"> + <summary> + Return a list of connected controllers. + </summary> + </member> + <member name="M:Steamworks.SteamInput.GetDigitalActionGlyph(Steamworks.Controller,System.String)"> + <summary> + Return an absolute path to the PNG image glyph for the provided digital action name. The current + action set in use for the controller will be used for the lookup. You should cache the result and + maintain your own list of loaded PNG assets. + </summary> + <param name="controller"></param> + <param name="action"></param> + <returns></returns> + </member> + <member name="T:Steamworks.SteamInventory"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamInventory.LoadItemDefinitions"> + <summary> + Call this if you're going to want to access definition information. You should be able to get + away with calling this once at the start if your game, assuming your items don't change all the time. + This will trigger OnDefinitionsUpdated at which point Definitions should be set. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.WaitForDefinitions(System.Single)"> + <summary> + Will call LoadItemDefinitions and wait until Definitions is not null + </summary> + </member> + <member name="M:Steamworks.SteamInventory.FindDefinition(Steamworks.Data.InventoryDefId)"> + <summary> + Try to find the definition that matches this definition ID. + Uses a dictionary so should be about as fast as possible. + </summary> + </member> + <member name="P:Steamworks.SteamInventory.Items"> + <summary> + We will try to keep this list of your items automatically up to date. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItems"> + <summary> + Update the list of Items[] + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItemsAsync"> + <summary> + Get all items and return the InventoryResult + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GenerateItemAsync(Steamworks.InventoryDef,System.Int32)"> + <summary> + This is used to grant a specific item to the user. This should + only be used for development prototyping, from a trusted server, + or if you don't care about hacked clients granting arbitrary items. + This call can be disabled by a setting on Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem.Amount[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.DeserializeAsync(System.Byte[],System.Int32)"> + <summary> + Deserializes a result set and verifies the signature bytes. + This call has a potential soft-failure mode where the Result is expired, it will + still succeed in this mode.The "expired" + result could indicate that the data may be out of date - not just due to timed + expiration( one hour ), but also because one of the items in the result set may + have been traded or consumed since the result set was generated.You could compare + the timestamp from GetResultTimestamp to ISteamUtils::GetServerRealTime to determine + how old the data is. You could simply ignore the "expired" result code and + continue as normal, or you could request the player with expired data to send + an updated result set. + You should call CheckResultSteamID on the result handle when it completes to verify + that a remote player is not pretending to have a different user's inventory. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GrantPromoItemsAsync"> + <summary> + Grant all promotional items the user is eligible for + </summary> + </member> + <member name="M:Steamworks.SteamInventory.TriggerItemDropAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger an item drop for this user. This is for timed drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.AddPromoItemAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger a promo item drop. You can call this at startup, it won't + give users multiple promo drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.StartPurchaseAsync(Steamworks.InventoryDef[])"> + <summary> + Start buying a cart load of items. This will return a positive result is the purchase has + begun. You should listen out for SteamUser.OnMicroTxnAuthorizationResponse for a success. + </summary> + </member> + <member name="T:Steamworks.SteamMatchmaking"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="P:Steamworks.SteamMatchmaking.MaxLobbyKeyLength"> + <summary> + Maximum number of characters a lobby metadata key can be + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyInvite"> + <summary> + Someone invited you to a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyEntered"> + <summary> + You joined a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyCreated"> + <summary> + You created a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyGameCreated"> + <summary> + A game server has been associated with the lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyDataChanged"> + <summary> + The lobby metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDataChanged"> + <summary> + The lobby member metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberJoined"> + <summary> + The lobby member joined + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberLeave"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDisconnected"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberKicked"> + <summary> + The lobby member was kicked. The 3rd param is the user that kicked them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberBanned"> + <summary> + The lobby member was banned. The 3rd param is the user that banned them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnChatMessage"> + <summary> + A chat message was recieved from a member of a lobby + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.CreateLobbyAsync(System.Int32)"> + <summary> + Creates a new invisible lobby. Call lobby.SetPublic to take it online. + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.JoinLobbyAsync(Steamworks.SteamId)"> + <summmary> + Attempts to directly join the specified lobby + </summmary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetFavoriteServers"> + <summary> + Get a list of servers that are on your favorites list + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetHistoryServers"> + <summary> + Get a list of servers that you have added to your play history + </summary> + </member> + <member name="T:Steamworks.SteamMatchmakingServers"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="T:Steamworks.SteamMusic"> + <summary> + Functions to control music playback in the steam client. + This gives games the opportunity to do things like pause the music or lower the volume, + when an important cut scene is shown, and start playing afterwards. + Nothing uses Steam Music though so this can probably get fucked + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnPlaybackChanged"> + <summary> + Playback status changed + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnVolumeChanged"> + <summary> + Volume changed, parameter is new volume + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsEnabled"> + <summary> + Checks if Steam Music is enabled + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsPlaying"> + <summary> + true if a song is currently playing, paused, or queued up to play; otherwise false. + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Status"> + <summary> + Gets the current status of the Steam Music player + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayPrevious"> + <summary> + Have the Steam Music player play the previous song. + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayNext"> + <summary> + Have the Steam Music player skip to the next song + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Volume"> + <summary> + Gets/Sets the current volume of the Steam Music player + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PSessionRequest"> + <summary> + This SteamId wants to send you a message. You should respond by calling AcceptP2PSessionWithUser + if you want to recieve their messages + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PConnectionFailed"> + <summary> + Called when packets can't get through to the specified user. + All queued packets unsent at this point will be dropped, further attempts + to send will retry making the connection (but will be dropped if we fail again). + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AcceptP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called in response to a OnP2PSessionRequest + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AllowP2PPacketRelay(System.Boolean)"> + <summary> + Allow or disallow P2P connects to fall back on Steam server relay if direct + connection or NAT traversal can't be established. Applies to connections + created after setting or old connections that need to reconnect. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.CloseP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called when you're done communicating with a user, as this will + free up all of the resources allocated for the connection under-the-hood. + If the remote user tries to send data to you again, a new OnP2PSessionRequest + callback will be posted + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.IsP2PPacketAvailable(System.Int32)"> + <summary> + Checks if a P2P packet is available to read, and gets the size of the message if there is one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte[],System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte*,System.UInt32,System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte[],System.Int32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte*,System.UInt32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket``1(Steamworks.Data.NetAddress)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6) + + To use this derive a class from SocketManager and override as much as you want. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket(Steamworks.Data.NetAddress,Steamworks.ISocketManager)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6). + + To use this you should pass a class that inherits ISocketManager. You can use + SocketManager to get connections and send messages, but the ISocketManager class + will received all the appropriate callbacks. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal``1(Steamworks.Data.NetAddress)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal(Steamworks.Data.NetAddress,Steamworks.IConnectionManager)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateRelaySocket``1(System.Int32)"> + <summary> + Creates a server that will be relayed via Valve's network (hiding the IP and improving ping) + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectRelay``1(Steamworks.SteamId,System.Int32)"> + <summary> + Connect to a relay server + </summary> + </member> + <member name="T:Steamworks.SteamNetworkingUtils"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamNetworkingUtils.OnDebugOutput"> + <summary> + A function to receive debug network information on. This will do nothing + unless you set DebugLevel to something other than None. + + You should set this to an appropriate level instead of setting it to the highest + and then filtering it by hand because a lot of energy is used by creating the strings + and your frame rate will tank and you won't know why. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Status"> + <summary> + The latest available status gathered from the SteamRelayNetworkStatus callback + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.InitRelayNetworkAccess"> + <summary> + If you know that you are going to be using the relay network (for example, + because you anticipate making P2P connections), call this to initialize the + relay network. If you do not call this, the initialization will + be delayed until the first time you use a feature that requires access + to the relay network, which will delay that first access. + + You can also call this to force a retry if the previous attempt has failed. + Performing any action that requires access to the relay network will also + trigger a retry, and so calling this function is never strictly necessary, + but it can be useful to call it a program launch time, if access to the + relay network is anticipated. + + Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + callbacks to know when initialization has completed. + Typically initialization completes in a few seconds. + + Note: dedicated servers hosted in known data centers do *not* need + to call this, since they do not make routing decisions. However, if + the dedicated server will be using P2P functionality, it will act as + a "client" and this should be called. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.LocalPingLocation"> + <summary> + Return location info for the current host. + + It takes a few seconds to initialize access to the relay network. If + you call this very soon after startup the data may not be available yet. + + This always return the most up-to-date information we have available + right now, even if we are in the middle of re-calculating ping times. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + <summary> + Same as PingLocation.EstimatePingTo, but assumes that one location is the local host. + This is a bit faster, especially if you need to calculate a bunch of + these in a loop to find the fastest one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.WaitForPingDataAsync(System.Single)"> + <summary> + If you need ping information straight away, wait on this. It will return + immediately if you already have up to date ping data + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.ConnectionTimeout"> + <summary> + Timeout value (in ms) to use when first connecting + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Timeout"> + <summary> + Timeout value (in ms) to use after connection is established + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.SendBufferSize"> + <summary> + Upper limit of buffered pending bytes to be sent. + If this is reached SendMessage will return LimitExceeded. + Default is 524288 bytes (512k) + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.DebugLevel"> + <summary> + Get Debug Information via OnDebugOutput event + + Except when debugging, you should only use NetDebugOutput.Msg + or NetDebugOutput.Warning. For best performance, do NOT + request a high detail level and then filter out messages in the callback. + + This incurs all of the expense of formatting the messages, which are then discarded. + Setting a high priority value (low numeric value) here allows the library to avoid + doing this work. + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugLevel"> + <summary> + So we can remember and provide a Get for DebugLEvel + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugFunc"> + <summary> + We need to keep the delegate around until it's not used anymore + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OnDebugMessage(Steamworks.NetDebugOutput,System.IntPtr)"> + <summary> + This can be called from other threads - so we're going to queue these up and process them in a safe place. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OutputDebugMessages"> + <summary> + Called regularly from the Dispatch loop so we can provide a timely + stream of messages. + </summary> + </member> + <member name="T:Steamworks.SteamParental"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamParental.OnSettingsChanged"> + <summary> + Parental Settings Changed + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockEnabled"> + <summary> + + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockLocked"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsAppBlocked(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsAppInBlockList(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsFeatureBlocked(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsFeatureInBlockList(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="T:Steamworks.SteamParties"> + <summary> + This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. + Tell Steam the number of player spots that are available for your party, and a join-game string, and it + will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. + Adjust the number of open slots if other players join through alternate matchmaking methods. + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnBeaconLocationsUpdated"> + <summary> + The list of possible Party beacon locations has changed + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnActiveBeaconsUpdated"> + <summary> + The list of active beacons may have changed + </summary> + </member> + <member name="T:Steamworks.SteamRemotePlay"> + <summary> + Functions that provide information about Steam Remote Play sessions, streaming your game content to another computer or to a Steam Link app or hardware. + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionConnected"> + <summary> + Called when a session is connected + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionDisconnected"> + <summary> + Called when a session becomes disconnected + </summary> + </member> + <member name="P:Steamworks.SteamRemotePlay.SessionCount"> + <summary> + Get the number of currently connected Steam Remote Play sessions + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.GetSession(System.Int32)"> + <summary> + Get the currently connected Steam Remote Play session ID at the specified index. + IsValid will return false if it's out of bounds + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.SendInvite(Steamworks.SteamId)"> + <summary> + Invite a friend to Remote Play Together + This returns false if the invite can't be sent + </summary> + </member> + <member name="T:Steamworks.SteamRemoteStorage"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileWrite(System.String,System.Byte[])"> + <summary> + Creates a new file, writes the bytes to the file, and then closes the file. + If the target file already exists, it is overwritten + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileRead(System.String)"> + <summary> + Opens a binary file, reads the contents of the file into a byte array, and then closes the file. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileExists(System.String)"> + <summary> + Checks whether the specified file exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FilePersisted(System.String)"> + <summary> + Checks if a specific file is persisted in the steam cloud. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileTime(System.String)"> + <summary> + Gets the specified file's last modified date/time. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileSize(System.String)"> + <summary> + Gets the specified files size in bytes. 0 if not exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileForget(System.String)"> + <summary> + Deletes the file from remote storage, but leaves it on the local disk and remains accessible from the API. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileDelete(System.String)"> + <summary> + Deletes a file from the local disk, and propagates that delete to the cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaBytes"> + <summary> + Number of bytes total + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaUsedBytes"> + <summary> + Number of bytes used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaRemainingBytes"> + <summary> + Number of bytes remaining until your quota is used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabled"> + <summary> + returns true if IsCloudEnabledForAccount AND IsCloudEnabledForApp + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForAccount"> + <summary> + Checks if the account wide Steam Cloud setting is enabled for this user + or if they disabled it in the Settings->Cloud dialog. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForApp"> + <summary> + Checks if the per game Steam Cloud setting is enabled for this user + or if they disabled it in the Game Properties->Update dialog. + + This must only ever be set as the direct result of the user explicitly + requesting that it's enabled or not. This is typically accomplished with + a checkbox within your in-game options + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.FileCount"> + <summary> + Gets the total number of local files synchronized by Steam Cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.Files"> + <summary> + Get a list of filenames synchronized by Steam Cloud + </summary> + </member> + <member name="T:Steamworks.SteamScreenshots"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotRequested"> + <summary> + A screenshot has been requested by the user from the Steam screenshot hotkey. + This will only be called if Hooked is true, in which case Steam + will not take the screenshot itself. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotReady"> + <summary> + A screenshot successfully written or otherwise added to the library and can now be tagged. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotFailed"> + <summary> + A screenshot attempt failed + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.WriteScreenshot(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.AddScreenshot(System.String,System.String,System.Int32,System.Int32)"> + <summary> + Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + JPEG, TGA, and PNG formats are supported. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.TriggerScreenshot"> + <summary> + Causes the Steam overlay to take a screenshot. + If screenshots are being hooked by the game then a + ScreenshotRequested callback is sent back to the game instead. + </summary> + </member> + <member name="P:Steamworks.SteamScreenshots.Hooked"> + <summary> + Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or if the game handles them. + Hooking is disabled by default, and only ever enabled if you do so with this function. + If the hooking is enabled, then the ScreenshotRequested_t callback will be sent if the user presses the hotkey or + when TriggerScreenshot is called, and then the game is expected to call WriteScreenshot or AddScreenshotToLibrary in response. + </summary> + </member> + <member name="T:Steamworks.SteamServer"> + <summary> + Provides the core of the Steam Game Servers API + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnValidateAuthTicketResponse"> + <summary> + User has been authed or rejected + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the server now is logged on and has a working connection to the Steam master server. + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServerConnectFailure"> + <summary> + This will occur periodically if the Steam client is not connected, and has failed when retrying to establish a connection (result, stilltrying) + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersDisconnected"> + <summary> + Disconnected from Steam + </summary> + </member> + <member name="M:Steamworks.SteamServer.Init(Steamworks.AppId,Steamworks.SteamServerInit,System.Boolean)"> + <summary> + Initialize the steam server. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="M:Steamworks.SteamServer.RunCallbacks"> + <summary> + Run the callbacks. This is also called in Async callbacks. + </summary> + </member> + <member name="P:Steamworks.SteamServer.DedicatedServer"> + <summary> + Sets whether this should be marked as a dedicated server. + If not, it is assumed to be a listen server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MaxPlayers"> + <summary> + Gets or sets the current MaxPlayers. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.BotCount"> + <summary> + Gets or sets the current BotCount. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MapName"> + <summary> + Gets or sets the current Map Name. + </summary> + </member> + <member name="P:Steamworks.SteamServer.ModDir"> + <summary> + Gets or sets the current ModDir + </summary> + </member> + <member name="P:Steamworks.SteamServer.Product"> + <summary> + Gets the current product + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameDescription"> + <summary> + Gets or sets the current Product + </summary> + </member> + <member name="P:Steamworks.SteamServer.ServerName"> + <summary> + Gets or sets the current ServerName + </summary> + </member> + <member name="P:Steamworks.SteamServer.Passworded"> + <summary> + Set whether the server should report itself as passworded + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameTags"> + <summary> + Gets or sets the current GameTags. This is a comma seperated list of tags for this server. + When querying the server list you can filter by these tags. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOnAnonymous"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOff"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="P:Steamworks.SteamServer.LoggedOn"> + <summary> + Returns true if the server is connected and registered with the Steam master server + You should have called LogOnAnonymous etc on startup. + </summary> + </member> + <member name="P:Steamworks.SteamServer.PublicIp"> + <summary> + To the best of its ability this tries to get the server's + current public ip address. Be aware that this is likely to return + null for the first few seconds after initialization. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeats"> + <summary> + Enable or disable heartbeats, which are sent regularly to the master server. + Enabled by default. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeatRate"> + <summary> + Set heartbeat interval, if automatic heartbeats are enabled. + You can leave this at the default. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ForceHeartbeat"> + <summary> + Force send a heartbeat to the master server instead of waiting + for the next automatic update (if you've left them enabled) + </summary> + </member> + <member name="M:Steamworks.SteamServer.UpdatePlayer(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Update this connected player's information. You should really call this + any time a player's name or score changes. This keeps the information shown + to server queries up to date. + </summary> + </member> + <member name="M:Steamworks.SteamServer.SetKey(System.String,System.String)"> + <summary> + Sets a Key Value. These can be anything you like, and are accessible + when querying servers from the server list. + + Information describing gamemodes are common here. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ClearKeys"> + <summary> + Remove all key values + </summary> + </member> + <member name="M:Steamworks.SteamServer.BeginAuthSession(System.Byte[],Steamworks.SteamId)"> + <summary> + Start authorizing a ticket. This user isn't authorized yet. Wait for a call to OnAuthChange. + </summary> + </member> + <member name="M:Steamworks.SteamServer.EndSession(Steamworks.SteamId)"> + <summary> + Forget this guy. They're no longer in the game. + </summary> + </member> + <member name="M:Steamworks.SteamServer.GetOutgoingPacket(Steamworks.Data.OutgoingPacket@)"> + <summary> + If true, Steam wants to send a packet. You should respond by sending + this packet in an unconnected way to the returned Address and Port. + </summary> + <param name="packet">Packet to send. The Data passed is pooled - so use it immediately.</param> + <returns>True if we want to send a packet</returns> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.Byte[],System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.IntPtr,System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.UserHasLicenseForApp(Steamworks.SteamId,Steamworks.AppId)"> + <summary> + Does the user own this app (which could be DLC) + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.RequestUserStatsAsync(Steamworks.SteamId)"> + <summary> + Downloads stats for the user + If the user has no stats will return fail + these stats will only be auto-updated for clients playing on the server + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Unlocks the specified achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.ClearAchievement(Steamworks.SteamId,System.String)"> + <summary> + Resets the unlock status of an achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Return true if available, exists and unlocked + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.StoreUserStats(Steamworks.SteamId)"> + <summary> + Once you've set a stat change on a user you need to commit your changes. + You can do that using this function. The callback will let you know if + your action succeeded, but most of the time you can fire and forget. + </summary> + </member> + <member name="T:Steamworks.SteamUGC"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUGC.OnDownloadItemResult"> + <summary> + Posted after Download call + </summary> + </member> + <member name="M:Steamworks.SteamUGC.Download(Steamworks.Data.PublishedFileId,System.Boolean)"> + <summary> + Start downloading this item. You'll get notified of completion via OnDownloadItemResult. + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="highPriority">If true this should go straight to the top of the download list</param> + <returns>true if nothing went wrong and the download is started</returns> + </member> + <member name="M:Steamworks.SteamUGC.DownloadAsync(Steamworks.Data.PublishedFileId,System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Will attempt to download this item asyncronously - allowing you to instantly react to its installation + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="progress">An optional callback</param> + <param name="ct">Allows you to send a message to cancel the download anywhere during the process</param> + <param name="milisecondsUpdateDelay">How often to call the progress function</param> + <returns>true if downloaded and installed correctly</returns> + </member> + <member name="M:Steamworks.SteamUGC.QueryFileAsync(Steamworks.Data.PublishedFileId)"> + <summary> + Utility function to fetch a single item. Internally this uses Ugc.FileQuery - + which you can use to query multiple items if you need to. + </summary> + </member> + <member name="T:Steamworks.SteamUser"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the Steam client now has a working connection to the Steam servers. + Usually this will have occurred before the game has launched, and should only be seen if the + user has dropped connection due to a networking issue or a Steam server update. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServerConnectFailure"> + <summary> + Called when a connection attempt has failed. + This will occur periodically if the Steam client is not connected, + and has failed when retrying to establish a connection. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersDisconnected"> + <summary> + Called if the client has lost connection to the Steam servers. + Real-time services will be disabled until a matching OnSteamServersConnected has been posted. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnClientGameServerDeny"> + <summary> + Sent by the Steam server to the client telling it to disconnect from the specified game server, + which it may be in the process of or already connected to. + The game client should immediately disconnect upon receiving this message. + This can usually occur if the user doesn't have rights to play on the game server. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnLicensesUpdated"> + <summary> + Called whenever the users licenses (owned packages) changes. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnValidateAuthTicketResponse"> + <summary> + Called when an auth ticket has been validated. + The first parameter is the steamid of this user + The second is the Steam ID that owns the game, this will be different from the first + if the game is being borrowed via Steam Family Sharing + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGetAuthSessionTicketResponse"> + <summary> + Used internally for GetAuthSessionTicketAsync + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnMicroTxnAuthorizationResponse"> + <summary> + Called when a user has responded to a microtransaction authorization request. + ( appid, orderid, user authorized ) + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGameWebCallback"> + <summary> + Sent to your game in response to a steam://gamewebcallback/ command from a user clicking a link in the Steam overlay browser. + You can use this to add support for external site signups where you want to pop back into the browser after some web page + signup sequence, and optionally get back some detail about that. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnDurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, + half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.SteamUser.VoiceRecord"> + <summary> + Starts/Stops voice recording. + Once started, use GetAvailableVoice and GetVoice to get the data, and then call StopVoiceRecording + when the user has released their push-to-talk hotkey or the game session has completed. + </summary> + </member> + <member name="P:Steamworks.SteamUser.HasVoiceData"> + <summary> + Returns true if we have voice data waiting to be read + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceData(System.IO.Stream)"> + <summary> + Reads the voice data and returns the number of bytes written. + The compressed data can be transmitted by your application and decoded back into raw audio data using + DecompressVoice on the other side. The compressed data provided is in an arbitrary format and is not meant to be played directly. + This should be called once per frame, and at worst no more than four times a second to keep the microphone input delay as low as + possible. Calling this any less may result in gaps in the returned stream. + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceDataBytes"> + <summary> + Reads the voice data and returns the bytes. You should obviously ideally be using + ReadVoiceData because it won't be creating a new byte array every call. But this + makes it easier to get it working, so let the babies have their bottle. + </summary> + </member> + <member name="M:Steamworks.SteamUser.DecompressVoice(System.IO.Stream,System.Int32,System.IO.Stream)"> + <summary> + Decodes the compressed voice data returned by GetVoice. + The output data is raw single-channel 16-bit PCM audio.The decoder supports any sample rate from 11025 to 48000. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicket"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicketAsync(System.Double)"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + This waits for a positive response from the backend before returning the ticket. This means + the ticket is definitely ready to go as soon as it returns. Will return null if the callback + times out or returns negatively. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsBehindNAT"> + <summary> + Checks if the current users looks like they are behind a NAT device. + This is only valid if the user is connected to the Steam servers and may not catch all forms of NAT. + </summary> + </member> + <member name="P:Steamworks.SteamUser.SteamLevel"> + <summary> + Gets the Steam level of the user, as shown on their Steam community profile. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetStoreAuthUrlAsync(System.String)"> + <summary> + Requests a URL which authenticates an in-game browser for store check-out, and then redirects to the specified URL. + As long as the in-game browser accepts and handles session cookies, Steam microtransaction checkout pages will automatically recognize the user instead of presenting a login page. + NOTE: The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. + NOTE: The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneVerified"> + <summary> + Checks whether the current user has verified their phone number. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsTwoFactorEnabled"> + <summary> + Checks whether the current user has Steam Guard two factor authentication enabled on their account. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneIdentifying"> + <summary> + Checks whether the user's phone number is used to uniquely identify them. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneRequiringVerification"> + <summary> + Checks whether the current user's phone number is awaiting (re)verification. + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync(System.Byte[])"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + If you get a null result from this it's probably because you're calling it too often. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetDurationControl"> + <summary> + Get anti indulgence / duration control + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementIconFetched"> + <summary> + called when the achivement icon is loaded + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsReceived"> + <summary> + called when the latests stats and achievements have been received + from the server + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsStored"> + <summary> + result of a request to store the user stats for a game + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementProgress"> + <summary> + result of a request to store the achievements for a game, or an + "indicate progress" call. If both m_nCurProgress and m_nMaxProgress + are zero, that means the achievement has been fully unlocked + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsUnloaded"> + <summary> + Callback indicating that a user's stats have been unloaded + </summary> + </member> + <member name="P:Steamworks.SteamUserStats.Achievements"> + <summary> + Get the available achievements + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.IndicateAchievementProgress(System.String,System.Int32,System.Int32)"> + <summary> + Show the user a pop-up notification with the current progress toward an achievement. + Will return false if RequestCurrentStats has not completed and successfully returned + its callback, if the achievement doesn't exist/has unpublished changes in the app's + Steamworks Admin page, or if the achievement is unlocked. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.PlayerCountAsync"> + <summary> + Tries to get the number of players currently playing this game. + Or -1 if failed. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.StoreStats"> + <summary> + Send the changed stats and achievements data to the server for permanent storage. + If this fails then nothing is sent to the server. It's advisable to keep trying until the call is successful. + This call can be rate limited. Call frequency should be on the order of minutes, rather than seconds.You should only be calling this during major state changes such as the end of a round, the map changing, or the user leaving a server. This call is required to display the achievement unlock notification dialog though, so if you have called SetAchievement then it's advisable to call this soon after that. + If you have stats or achievements that you have saved locally but haven't uploaded with this function when your application process ends then this function will automatically be called. + You can find additional debug information written to the %steam_install%\logs\stats_log.txt file. + This function returns true upon success if : + RequestCurrentStats has completed and successfully returned its callback AND + the current game has stats associated with it in the Steamworks Partner backend, and those stats are published. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestCurrentStats"> + <summary> + Asynchronously request the user's current stats and achievements from the server. + You must always call this first to get the initial status of stats and achievements. + Only after the resulting callback comes back can you start calling the rest of the stats + and achievement functions for the current user. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestGlobalStatsAsync(System.Int32)"> + <summary> + Asynchronously fetches global stats data, which is available for stats marked as + "aggregated" in the App Admin panel of the Steamworks website. + You must have called RequestCurrentStats and it needs to return successfully via + its callback prior to calling this. + </summary> + <param name="days">How many days of day-by-day history to retrieve in addition to the overall totals. The limit is 60.</param> + <returns>OK indicates success, InvalidState means you need to call RequestCurrentStats first, Fail means the remote call failed</returns> + </member> + <member name="M:Steamworks.SteamUserStats.FindOrCreateLeaderboardAsync(System.String,Steamworks.Data.LeaderboardSort,Steamworks.Data.LeaderboardDisplay)"> + <summary> + Gets a leaderboard by name, it will create it if it's not yet created. + Leaderboards created with this function will not automatically show up in the Steam Community. + You must manually set the Community Name field in the App Admin panel of the Steamworks website. + As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on + the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of + dynamically created leaderboards. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Int32)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Single)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Int32)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Single)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatInt(System.String)"> + <summary> + Get a Int stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatFloat(System.String)"> + <summary> + Get a float stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.ResetAll(System.Boolean)"> + <summary> + Practically wipes the slate clean for this user. If includeAchievements is true, will wipe + any achievements too. + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamUtils"> + <summary> + Interface which provides access to a range of miscellaneous utility functions + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnIpCountryChanged"> + <summary> + The country of the user changed + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnLowBatteryPower"> + <summary> + Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute + The parameter is the number of minutes left + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnSteamShutdown"> + <summary> + Called when Steam wants to shutdown + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnGamepadTextInputDismissed"> + <summary> + Big Picture gamepad text input has been closed. Parameter is true if text was submitted, false if cancelled etc. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceAppActive"> + <summary> + Returns the number of seconds since the application was active + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceComputerActive"> + <summary> + Returns the number of seconds since the user last moved the mouse etc + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamServerTime"> + <summary> + Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IpCountry"> + <summary> + returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + e.g "US" or "UK". + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImageSize(System.Int32,System.UInt32@,System.UInt32@)"> + <summary> + returns true if the image exists, and the buffer was successfully filled out + results are returned in RGBA format + the destination buffer size should be 4 * height * width * sizeof(char) + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImage(System.Int32)"> + <summary> + returns the image in RGBA format + </summary> + </member> + <member name="P:Steamworks.SteamUtils.UsingBatteryPower"> + <summary> + Returns true if we're using a battery (ie, a laptop not plugged in) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.CurrentBatteryPower"> + <summary> + Returns battery power [0-1] + </summary> + </member> + <member name="P:Steamworks.SteamUtils.OverlayNotificationPosition"> + <summary> + Sets the position where the overlay instance for the currently calling game should show notifications. + This position is per-game and if this function is called from outside of a game context it will do nothing. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsOverlayEnabled"> + <summary> + Returns true if the overlay is running and the user can access it. The overlay process could take a few seconds to + start and hook the game process, so this function will initially return false while the overlay is loading. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.DoesOverlayNeedPresent"> + <summary> + Normally this call is unneeded if your game has a constantly running frame loop that calls the + D3D Present API, or OGL SwapBuffers API every frame. + + However, if you have a game that only refreshes the screen on an event driven basis then that can break + the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + need to Present() to the screen any time an even needing a notification happens or when the overlay is + brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.CheckFileSignatureAsync(System.String)"> + <summary> + Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + of the partner site, for example to refuse to load modified executable files. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.ShowGamepadTextInput(Steamworks.GamepadTextInputMode,Steamworks.GamepadTextInputLineMode,System.String,System.Int32,System.String)"> + <summary> + Activates the Big Picture text input dialog which only supports gamepad input + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetEnteredGamepadText"> + <summary> + Returns previously entered text + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamUILanguage"> + <summary> + returns the language the steam client is running in, you probably want + Apps.CurrentGameLanguage instead, this is for very special usage cases + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamRunningInVR"> + <summary> + returns true if Steam itself is running in VR mode + </summary> + </member> + <member name="M:Steamworks.SteamUtils.SetOverlayNotificationInset(System.Int32,System.Int32)"> + <summary> + Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamInBigPictureMode"> + <summary> + returns true if Steam and the Steam Overlay are running in Big Picture mode + Games much be launched through the Steam client to enable the Big Picture overlay. During development, + a game can be added as a non-steam game to the developers library to test this feature + </summary> + </member> + <member name="M:Steamworks.SteamUtils.StartVRDashboard"> + <summary> + ask SteamUI to create and render its OpenVR dashboard + </summary> + </member> + <member name="P:Steamworks.SteamUtils.VrHeadsetStreaming"> + <summary> + Set whether the HMD content will be streamed via Steam In-Home Streaming + If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + (this is useful for games that have asymmetric multiplayer gameplay) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamChinaLauncher"> + <summary> + Returns whether this steam client is a Steam China specific client, vs the global client + </summary> + </member> + <member name="T:Steamworks.SteamVideo"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="P:Steamworks.SteamVideo.IsBroadcasting"> + <summary> + Return true if currently using Steam's live broadcasting + </summary> + </member> + <member name="P:Steamworks.SteamVideo.NumViewers"> + <summary> + If we're broadcasting, will return the number of live viewers + </summary> + </member> + <member name="P:Steamworks.Controller.ActionSet"> + <summary> + Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + our state loops, instead of trying to place it in all of your state transitions. + </summary> + </member> + <member name="M:Steamworks.Controller.GetDigitalState(System.String)"> + <summary> + Returns the current state of the supplied digital game action + </summary> + </member> + <member name="M:Steamworks.Controller.GetAnalogState(System.String)"> + <summary> + Returns the current state of these supplied analog game action + </summary> + </member> + <member name="P:Steamworks.Friend.IsMe"> + <summary> + Returns true if this is the local user + </summary> + </member> + <member name="P:Steamworks.Friend.IsFriend"> + <summary> + Return true if this is a friend + </summary> + </member> + <member name="P:Steamworks.Friend.IsBlocked"> + <summary> + Returns true if you have this user blocked + </summary> + </member> + <member name="P:Steamworks.Friend.IsPlayingThisGame"> + <summary> + Return true if this user is playing the game we're running + </summary> + </member> + <member name="P:Steamworks.Friend.IsOnline"> + <summary> + Returns true if this friend is online + </summary> + </member> + <member name="M:Steamworks.Friend.RequestInfoAsync"> + <summary> + Sometimes we don't know the user's name. This will wait until we have + downloaded the information on this user. + </summary> + </member> + <member name="P:Steamworks.Friend.IsAway"> + <summary> + Returns true if this friend is marked as away + </summary> + </member> + <member name="P:Steamworks.Friend.IsBusy"> + <summary> + Returns true if this friend is marked as busy + </summary> + </member> + <member name="P:Steamworks.Friend.IsSnoozing"> + <summary> + Returns true if this friend is marked as snoozing + </summary> + </member> + <member name="M:Steamworks.Friend.InviteToGame(System.String)"> + <summary> + Invite this friend to the game that we are playing + </summary> + </member> + <member name="M:Steamworks.Friend.SendMessage(System.String)"> + <summary> + Sends a message to a Steam friend. Returns true if success + </summary> + </member> + <member name="M:Steamworks.Friend.RequestUserStatsAsync"> + <summary> + Tries to get download the latest user stats + </summary> + <returns>True if successful, False if failure</returns> + </member> + <member name="M:Steamworks.Friend.GetStatFloat(System.String,System.Single)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetStatInt(System.String,System.Int32)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievement(System.String,System.Boolean)"> + <summary> + Gets a user achievement state. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievementUnlockTime(System.String)"> + <summary> + Gets a the time this achievement was unlocked. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <returns>The time unlocked. If it wasn't unlocked, or you haven't downloaded the stats yet - will return DateTime.MinValue</returns> + </member> + <member name="P:Steamworks.InventoryDef.Name"> + <summary> + Shortcut to call GetProperty( "name" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Description"> + <summary> + Shortcut to call GetProperty( "description" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrl"> + <summary> + Shortcut to call GetProperty( "icon_url" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrlLarge"> + <summary> + Shortcut to call GetProperty( "icon_url_large" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.PriceCategory"> + <summary> + Shortcut to call GetProperty( "price_category" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Type"> + <summary> + Shortcut to call GetProperty( "type" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IsGenerator"> + <summary> + Returns true if this is an item that generates an item, rather + than something that is actual an item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.ExchangeSchema"> + <summary> + Shortcut to call GetProperty( "exchange" ) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipes"> + <summary> + Get a list of exchanges that are available to make this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Marketable"> + <summary> + Shortcut to call GetBoolProperty( "marketable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Tradable"> + <summary> + Shortcut to call GetBoolProperty( "tradable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Created"> + <summary> + Gets the property timestamp + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Modified"> + <summary> + Gets the property modified + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty(System.String)"> + <summary> + Get a specific property by name + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetBoolProperty(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty``1(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Properties"> + <summary> + Gets a list of all properties on this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalPrice"> + <summary> + Returns the price of this item in the local currency (SteamInventory.Currency) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalBasePrice"> + <summary> + If the price has been discounted, LocalPrice will differ from LocalBasePrice + (assumed, this isn't documented) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipesContainingThis"> + <summary> + Return a list of recepies that contain this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Properties"> + <summary> + Only available if the result set was created with the getproperties + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsNoTrade"> + <summary> + This item is account-locked and cannot be traded or given away. + This is an item status flag which is permanently attached to specific item instances + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsRemoved"> + <summary> + The item has been destroyed, traded away, expired, or otherwise invalidated. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsConsumed"> + <summary> + The item quantity has been decreased by 1 via ConsumeItem API. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="M:Steamworks.InventoryItem.ConsumeAsync(System.Int32)"> + <summary> + Consumes items from a user's inventory. If the quantity of the given item goes to zero, it is permanently removed. + Once an item is removed it cannot be recovered.This is not for the faint of heart - if your game implements item removal at all, + a high-friction UI confirmation process is highly recommended.ConsumeItem can be restricted to certain item definitions or fully + blocked via the Steamworks website to minimize support/abuse issues such as the classic "my brother borrowed my laptop and deleted all of my rare items". + </summary> + </member> + <member name="M:Steamworks.InventoryItem.SplitStackAsync(System.Int32)"> + <summary> + Split stack into two items + </summary> + </member> + <member name="M:Steamworks.InventoryItem.AddAsync(Steamworks.InventoryItem,System.Int32)"> + <summary> + Add x units of the target item to this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Acquired"> + <summary> + Will try to return the date that this item was aquired. You need to have for the items + with their properties for this to work. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Origin"> + <summary> + Tries to get the origin property. Need properties for this to work. + Will return a string like "market" + </summary> + </member> + <member name="T:Steamworks.InventoryItem.Amount"> + <summary> + Small utility class to describe an item with a quantity + </summary> + </member> + <member name="T:Steamworks.InventoryRecipe"> + <summary> + A structured description of an item exchange + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.DefinitionId"> + <summary> + The definition ID of the ingredient. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Definition"> + <summary> + If we don't know about this item definition this might be null. + In which case, DefinitionId should still hold the correct id. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Count"> + <summary> + The amount of this item needed. Generally this will be 1. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Result"> + <summary> + The item that this will create. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredients"> + <summary> + The items, with quantity required to create this item. + </summary> + </member> + <member name="M:Steamworks.InventoryResult.BelongsTo(Steamworks.SteamId)"> + <summary> + Checks whether an inventory result handle belongs to the specified Steam ID. + This is important when using Deserialize, to verify that a remote player is not pretending to have a different user's inventory + </summary> + </member> + <member name="M:Steamworks.InventoryResult.Serialize"> + <summary> + Serialized result sets contain a short signature which can't be forged or replayed across different game sessions. + A result set can be serialized on the local client, transmitted to other players via your game networking, and + deserialized by the remote players.This is a secure way of preventing hackers from lying about posessing + rare/high-value items. Serializes a result set with signature bytes to an output buffer.The size of a serialized + result depends on the number items which are being serialized.When securely transmitting items to other players, + it is recommended to use GetItemsByID first to create a minimal result set. + Results have a built-in timestamp which will be considered "expired" after an hour has elapsed.See DeserializeResult + for expiration handling. + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.Owner"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.MetaData"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.JoinAsync"> + <summary> + Will attempt to join the party. If successful will return a connection string. + If failed, will return null + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.OnReservationCompleted(Steamworks.SteamId)"> + <summary> + When a user follows your beacon, Steam will reserve one of the open party slots for them, and send your game a ReservationNotification callback. + When that user joins your party, call OnReservationCompleted to notify Steam that the user has joined successfully + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.CancelReservation(Steamworks.SteamId)"> + <summary> + To cancel a reservation (due to timeout or user input), call this. + Steam will open a new reservation slot. + Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.Destroy"> + <summary> + Turn off the beacon + </summary> + </member> + <member name="T:Steamworks.SteamServerInit"> + <summary> + Used to set up the server. + The variables in here are all required to be set, and can't be changed once the server is created. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.VersionString"> + <summary> + The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. + If you go into the dedicated server tab on steamworks you'll be able to server the latest version. If this version number is + less than that latest version then your server won't show. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.ModDir"> + <summary> + This should be the same directory game where gets installed into. Just the folder name, not the whole path. I.e. "Rust", "Garrysmod". + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.GameDescription"> + <summary> + The game description. Setting this to the full name of your game is recommended. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.DedicatedServer"> + <summary> + Is a dedicated server + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithRandomSteamPort"> + <summary> + Set the Steam quert port + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithQueryShareGamePort"> + <summary> + If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE into usQueryPort, then it causes the game server API to use + "GameSocketShare" mode, which means that the game is responsible for sending and receiving UDP packets for the master + server updater. + + More info about this here: https://partner.steamgames.com/doc/api/ISteamGameServer#HandleIncomingPacket + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewCommunityFile"> + <summary> + Create a Normal Workshop item that can be subscribed to + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewMicrotransactionFile"> + <summary> + Workshop item that is meant to be voted on for the purpose of selling in-game + </summary> + </member> + <member name="F:Steamworks.Ugc.PublishResult.NeedsWorkshopAgreement"> + <summary> + https://partner.steamgames.com/doc/features/workshop/implementation#Legal + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Id"> + <summary> + The actual ID of this file + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Title"> + <summary> + The given title of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Description"> + <summary> + The description of this item, in your local language if available + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Tags"> + <summary> + A list of tags for this item, all lowercase + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CreatorApp"> + <summary> + App Id of the app that created this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ConsumerApp"> + <summary> + App Id of the app that will consume this item. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Owner"> + <summary> + User who created this content + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Score"> + <summary> + The bayesian average for up votes / total votes, between [0,1] + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Created"> + <summary> + Time when the published item was created + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Updated"> + <summary> + Time when the published item was last updated + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPublic"> + <summary> + True if this is publically visible + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsFriendsOnly"> + <summary> + True if this item is only visible by friends of the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPrivate"> + <summary> + True if this is only visible to the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsBanned"> + <summary> + True if this item has been banned + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsAcceptedForUse"> + <summary> + Whether the developer of this app has specifically flagged this item as accepted in the Workshop + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesUp"> + <summary> + The number of upvotes of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesDown"> + <summary> + The number of downvotes of this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Download(System.Boolean)"> + <summary> + Start downloading this item. + If this returns false the item isn't getting downloaded. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesTotal"> + <summary> + If we're downloading, how big the total download is + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesDownloaded"> + <summary> + If we're downloading, how much we've downloaded + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.SizeBytes"> + <summary> + If we're installed, how big is the install + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadAmount"> + <summary> + If we're downloading our current progress as a delta betwen 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.HasTag(System.String)"> + <summary> + A case insensitive check for tag + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Subscribe"> + <summary> + Allows the user to subscribe to this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.DownloadAsync(System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Allows the user to subscribe to download this item asyncronously + If CancellationToken is default then there is 60 seconds timeout + Progress will be set to 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Unsubscribe"> + <summary> + Allows the user to unsubscribe from this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.AddFavorite"> + <summary> + Adds item to user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.RemoveFavorite"> + <summary> + Removes item from user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Vote(System.Boolean)"> + <summary> + Allows the user to rate a workshop item up or down. + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.GetUserVote"> + <summary> + Gets the current users vote on the item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Url"> + <summary> + Return a URL to view this item online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ChangelogUrl"> + <summary> + The URl to view this item's changelog + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CommentsUrl"> + <summary> + The URL to view the comments on this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DiscussUrl"> + <summary> + The URL to discuss this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.StatsUrl"> + <summary> + The URL to view this items stats online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.PreviewImageUrl"> + <summary> + The URL to the preview image for this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Edit"> + <summary> + Edit this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAnyTag"> + <summary> + Found items must have at least one of the defined tags + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAllTags"> + <summary> + Found items must have all defined tags + </summary> + </member> + <member name="P:Steamworks.Epoch.Current"> + <summary> + Returns the current Unix Epoch + </summary> + </member> + <member name="M:Steamworks.Epoch.ToDateTime(System.Decimal)"> + <summary> + Convert an epoch to a datetime + </summary> + </member> + <member name="M:Steamworks.Epoch.FromDateTime(System.DateTime)"> + <summary> + Convert a DateTime to a unix time + </summary> + </member> + <member name="M:Steamworks.Helpers.TakeBuffer(System.Int32)"> + <summary> + Returns a buffer. This will get returned and reused later on. + </summary> + </member> + <member name="T:Steamworks.PreserveAttribute"> + <summary> + Prevent unity from stripping shit we depend on + https://docs.unity3d.com/Manual/ManagedCodeStripping.html + </summary> + </member> + </members> +</doc> diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.xml.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.xml.meta new file mode 100644 index 0000000..4b60cf0 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win32.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1c9eb7c3219a16948b7520dc7026cf20 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.dll b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.dll Binary files differnew file mode 100644 index 0000000..bceb910 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.dll diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.dll.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.dll.meta new file mode 100644 index 0000000..d0a3d4b --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.dll.meta @@ -0,0 +1,95 @@ +fileFormatVersion: 2 +guid: b3ad7ccc15f481747842885a21b7b4ab +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 0 + Exclude Linux: 1 + Exclude Linux64: 1 + Exclude LinuxUniversal: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 0 + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: Windows + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: LinuxUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.pdb b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.pdb Binary files differnew file mode 100644 index 0000000..8225dea --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.pdb diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.pdb.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.pdb.meta new file mode 100644 index 0000000..632c125 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5f57f6707f14421449c3145099b82743 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.xml b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.xml new file mode 100644 index 0000000..b6836cb --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.xml @@ -0,0 +1,3474 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Facepunch.Steamworks.Win64</name> + </assembly> + <members> + <member name="T:Steamworks.CallResult`1"> + <summary> + An awaitable version of a SteamAPICall_t + </summary> + </member> + <member name="M:Steamworks.CallResult`1.OnCompleted(System.Action)"> + <summary> + This gets called if IsComplete returned false on the first call. + The Action "continues" the async call. We pass it to the Dispatch + to be called when the callback returns. + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetResult"> + <summary> + Gets the result. This is called internally by the async shit. + </summary> + </member> + <member name="P:Steamworks.CallResult`1.IsCompleted"> + <summary> + Return true if complete or failed + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetAwaiter"> + <summary> + This is what makes this struct awaitable + </summary> + </member> + <member name="T:Steamworks.ICallbackData"> + <summary> + Gives us a generic way to get the CallbackId of structs + </summary> + </member> + <member name="M:Steamworks.AuthTicket.Cancel"> + <summary> + Cancels a ticket. + You should cancel your ticket when you close the game or leave a server. + </summary> + </member> + <member name="T:Steamworks.Dispatch"> + <summary> + Responsible for all callback/callresult handling + + This manually pumps Steam's message queue and dispatches those + events to any waiting callbacks/callresults. + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnDebugCallback"> + <summary> + If set then we'll call this function every time a callback is generated. + + This is SLOW!! - it's for debugging - don't keep it on all the time. If you want to access a specific + callback then please create an issue on github and I'll add it! + + Params are : [Callback Type] [Callback Contents] [server] + + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnException"> + <summary> + Called if an exception happens during a callback/callresult. + This is needed because the exception isn't always accessible when running + async.. and can fail silently. With this hooked you won't be stuck wondering + what happened. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Init"> + <summary> + This gets called from Client/Server Init + It's important to switch to the manual dispatcher + </summary> + </member> + <member name="F:Steamworks.Dispatch.runningFrame"> + <summary> + Make sure we don't call Frame in a callback - because that'll cause some issues for everyone. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Frame(Steamworks.Data.HSteamPipe)"> + <summary> + Calls RunFrame and processes events from this Steam Pipe + </summary> + </member> + <member name="F:Steamworks.Dispatch.actionsToCall"> + <summary> + To be safe we don't call the continuation functions while iterating + the Callback list. This is maybe overly safe because the only way this + could be an issue is if the callback list is modified in the continuation + which would only happen if starting or shutting down in the callback. + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessCallback(Steamworks.Dispatch.CallbackMsg_t,System.Boolean)"> + <summary> + A callback is a general global message + </summary> + </member> + <member name="M:Steamworks.Dispatch.CallbackToString(Steamworks.CallbackType,System.IntPtr,System.Int32)"> + <summary> + Given a callback, try to turn it into a string + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessResult(Steamworks.Dispatch.CallbackMsg_t)"> + <summary> + A result is a reply to a specific command + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopClientAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopServerAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.OnCallComplete``1(Steamworks.Data.SteamAPICall_t,System.Action,System.Boolean)"> + <summary> + Watch for a steam api call + </summary> + </member> + <member name="M:Steamworks.Dispatch.Install``1(System.Action{``0},System.Boolean)"> + <summary> + Install a global callback. The passed function will get called if it's all good. + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.Numeric"> + <summary> + The score is just a simple numerical value + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeSeconds"> + <summary> + The score represents a time, in seconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeMilliSeconds"> + <summary> + The score represents a time, in milliseconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Ascending"> + <summary> + The top-score is the lowest number + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Descending"> + <summary> + The top-score is the highest number + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Unreliable"> + <summary> + Send the message unreliably. Can be lost. Messages *can* be larger than a + single MTU (UDP packet), but there is no retransmission, so if any piece + of the message is lost, the entire message will be dropped. + + The sending API does have some knowledge of the underlying connection, so + if there is no NAT-traversal accomplished or there is a recognized adjustment + happening on the connection, the packet will be batched until the connection + is open again. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoNagle"> + <summary> + Disable Nagle's algorithm. + By default, Nagle's algorithm is applied to all outbound messages. This means + that the message will NOT be sent immediately, in case further messages are + sent soon after you send this, which can be grouped together. Any time there + is enough buffered data to fill a packet, the packets will be pushed out immediately, + but partially-full packets not be sent until the Nagle timer expires. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoDelay"> + <summary> + If the message cannot be sent very soon (because the connection is still doing some initial + handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable + messages. Using this flag on reliable messages is invalid. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Reliable"> + Reliable message send. Can send up to 0.5mb in a single message. + Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for + efficient sends of large chunks of data. + </member> + <member name="P:Steamworks.Data.NetIdentity.LocalHost"> + <summary> + Return a NetIdentity that represents LocalHost + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.IsLocalHost"> + <summary> + Return true if this identity is localhost + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.SteamId)~Steamworks.Data.NetIdentity"> + <summary> + Convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetAddress)~Steamworks.Data.NetIdentity"> + <summary> + Set the specified Address + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetIdentity)~Steamworks.SteamId"> + <summary> + Automatically convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="P:Steamworks.Data.NetIdentity.SteamId"> + <summary> + Returns NULL if we're not a SteamId + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.Address"> + <summary> + Returns NULL if we're not a NetAddress + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.ToString"> + <summary> + We override tostring to provide a sensible representation + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Port"> + <summary> + The Port. This is redundant documentation. + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.AnyIp(System.UInt16)"> + <summary> + Any IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.LocalHost(System.UInt16)"> + <summary> + Localhost IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.String,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.Net.IPAddress,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Cleared"> + <summary> + Set everything to zero + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv6AllZeros"> + <summary> + Return true if the IP is ::0. (Doesn't check port.) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv4"> + <summary> + Return true if IP is mapped IPv4 + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsLocalHost"> + <summary> + Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Address"> + <summary> + Get the Address section + </summary> + </member> + <member name="T:Steamworks.Data.Connection"> + <summary> + Used as a base to create your client connection. This creates a socket + to a single connection. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Accept"> + <summary> + Accept an incoming connection that has been received on a listen socket. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Close(System.Boolean,System.Int32,System.String)"> + <summary> + Disconnects from the remote host and invalidates the connection handle. Any unread data on the connection is discarded.. + reasonCode is defined and used by you. + </summary> + </member> + <member name="P:Steamworks.Data.Connection.UserData"> + <summary> + Get/Set connection user data + </summary> + </member> + <member name="P:Steamworks.Data.Connection.ConnectionName"> + <summary> + A name for the connection, used mostly for debugging + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.IntPtr,System.Int32,Steamworks.Data.SendType)"> + <summary> + This is the best version to use. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],System.Int32,System.Int32,Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.String,Steamworks.Data.SendType)"> + <summary> + This creates a ton of garbage - so don't do anything with this beyond testing! + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Flush"> + <summary> + Flush any messages waiting on the Nagle timer and send them at the next transmission + opportunity (often that means right now). + </summary> + </member> + <member name="M:Steamworks.Data.Connection.DetailedStatus"> + <summary> + Returns detailed connection stats in text format. Useful + for dumping to a log, etc. + </summary> + <returns>Plain text connection info</returns> + </member> + <member name="T:Steamworks.Data.ConnectionInfo"> + <summary> + Describe the state of a connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.State"> + <summary> + High level state of the connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Address"> + <summary> + Remote address. Might be all 0's if we don't know it, or if this is N/A. + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Identity"> + <summary> + Who is on the other end? Depending on the connection type and phase of the connection, we might not know + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.EndReason"> + <summary> + Basic cause of the connection termination or problem. + </summary> + </member> + <member name="T:Steamworks.Data.NetPingLocation"> + <summary> + + Object that describes a "location" on the Internet with sufficient + detail that we can reasonably estimate an upper bound on the ping between + the two hosts, even if a direct route between the hosts is not possible, + and the connection must be routed through the Steam Datagram Relay network. + This does not contain any information that identifies the host. Indeed, + if two hosts are in the same building or otherwise have nearly identical + networking characteristics, then it's valid to use the same location + object for both of them. + + NOTE: This object should only be used in the same process! Do not serialize it, + send it over the wire, or persist it in a file or database! If you need + to do that, convert it to a string representation using the methods in + ISteamNetworkingUtils(). + + </summary> + </member> + <member name="M:Steamworks.Data.NetPingLocation.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + Estimate the round-trip latency between two arbitrary locations, in + milliseconds. This is a conservative estimate, based on routing through + the relay network. For most basic relayed connections, this ping time + will be pretty accurate, since it will be based on the route likely to + be actually used. + + If a direct IP route is used (perhaps via NAT traversal), then the route + will be different, and the ping time might be better. Or it might actually + be a bit worse! Standard IP routing is frequently suboptimal! + + But even in this case, the estimate obtained using this method is a + reasonable upper bound on the ping time. (Also it has the advantage + of returning immediately and not sending any packets.) + + In a few cases we might not able to estimate the route. In this case + a negative value is returned. k_nSteamNetworkingPing_Failed means + the reason was because of some networking difficulty. (Failure to + ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + currently answer the question for some other reason. + + Do you need to be able to do this from a backend/matchmaking server? + You are looking for the "ticketgen" library. + </member> + <member name="M:Steamworks.Data.Socket.Close"> + <summary> + Destroy a listen socket. All the connections that were accepting on the listen + socket are closed ungracefully. + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.State"> + <summary> + True if unlocked + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.UnlockTime"> + <summary> + Should hold the unlock time if State is true + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIcon"> + <summary> + Gets the icon of the achievement. This can return a null image even though the image exists if the image + hasn't been downloaded by Steam yet. You can use GetIconAsync if you want to wait for the image to be downloaded. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIconAsync(System.Int32)"> + <summary> + Gets the icon of the achievement, waits for it to load if we have to + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.GlobalUnlocked"> + <summary> + Returns the fraction (0-1) of users who have unlocked the specified achievement, or -1 if no data available. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Trigger(System.Boolean)"> + <summary> + Make this achievement earned + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Clear"> + <summary> + Reset this achievement to not achieved + </summary> + </member> + <member name="T:Steamworks.Data.DurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Appid"> + <summary> + appid generating playtime + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Applicable"> + <summary> + is duration control applicable to user + game combination + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeInLastFiveHours"> + <summary> + playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeToday"> + <summary> + playtime on current calendar day + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Progress"> + <summary> + recommended progress + </summary> + </member> + <member name="P:Steamworks.Data.Leaderboard.Name"> + <summary> + the name of a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.ReplaceScore(System.Int32,System.Int32[])"> + <summary> + Submit your score and replace your old score even if it was better + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.SubmitScoreAsync(System.Int32,System.Int32[])"> + <summary> + Submit your new score, but won't replace your high score if it's lower + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.AttachUgc(Steamworks.Data.Ugc)"> + <summary> + Attaches a piece of user generated content the user's entry on a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAsync(System.Int32,System.Int32)"> + <summary> + Used to query for a sequential range of leaderboard entries by leaderboard Sort. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAroundUserAsync(System.Int32,System.Int32)"> + <summary> + Used to retrieve leaderboard entries relative a user's entry. If there are not enough entries in the leaderboard + before or after the user's entry, Steam will adjust the range to try to return the number of entries requested. + For example, if the user is #1 on the leaderboard and start is set to -2, end is set to 2, Steam will return the first + 5 entries in the leaderboard. If The current user has no entry, this will return null. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresFromFriendsAsync"> + <summary> + Used to retrieve all leaderboard entries for friends of the current user + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Join"> + <summary> + Try to join this room. Will return RoomEnter.Success on success, + and anything else is a failure + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Leave"> + <summary> + Leave a lobby; this will take effect immediately on the client side + other users in the lobby will be notified by a LobbyChatUpdate_t callback + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.InviteFriend(Steamworks.SteamId)"> + <summary> + Invite another user to the lobby + will return true if the invite is successfully sent, whether or not the target responds + returns false if the local user is not connected to the Steam servers + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MemberCount"> + <summary> + returns the number of users in the specified lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Members"> + <summary> + Returns current members. Need to be in the lobby to see the users. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetData(System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetData(System.String,System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.DeleteData(System.String)"> + <summary> + Removes a metadata key from the lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Data"> + <summary> + Get all data for this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetMemberData(Steamworks.Friend,System.String)"> + <summary> + Gets per-user metadata for someone in this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetMemberData(System.String,System.String)"> + <summary> + Sets per-user metadata (for the local user implicitly) + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatString(System.String)"> + <summary> + Sends a string to the chat room + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatBytes(System.Byte[])"> + <summary> + Sends bytes the the chat room + this isn't exposed because there's no way to read raw bytes atm, + and I figure people can send json if they want something more advanced + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Refresh"> + <summary> + Refreshes metadata for a lobby you're not necessarily in right now + you never do this for lobbies you're a member of, only if your + this will send down all the metadata associated with a lobby + this is an asynchronous call + returns false if the local user is not connected to the Steam servers + results will be returned by a LobbyDataUpdate_t callback + if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MaxMembers"> + <summary> + Max members able to join this lobby. Cannot be over 250. + Can only be set by the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(Steamworks.SteamId)"> + <summary> + [SteamID variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(System.String,System.UInt16)"> + <summary> + [IP/Port variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetGameServer(System.UInt32@,System.UInt16@,Steamworks.SteamId@)"> + <summary> + Gets the details of the lobby's game server, if set. Returns true if the lobby is + valid and has a server set, otherwise returns false. + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Owner"> + <summary> + You must be the lobby owner to set the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.IsOwnedBy(Steamworks.SteamId)"> + <summary> + Check if the specified SteamId owns the lobby + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceClose"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceFar"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceWorldwide"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithKeyValue(System.String,System.String)"> + <summary> + Filter by specified key/value pair; string parameters + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithLower(System.String,System.Int32)"> + <summary> + Numerical filter where value is less than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithHigher(System.String,System.Int32)"> + <summary> + Numerical filter where value is greater than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must be equal to the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithNotEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must not equal the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.AddNumericalFilter(System.String,System.Int32,Steamworks.LobbyComparison)"> + <summary> + Test key, initialize numerical filter list if necessary, then add new numerical filter + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.OrderByNear(System.String,System.Int32)"> + <summary> + Order filtered results according to key/values nearest the provided key/value pair. + Can specify multiple near value filters; each successive filter is lower priority than the previous. + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithSlotsAvailable(System.Int32)"> + <summary> + returns only lobbies with the specified number of slots available + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithMaxResults(System.Int32)"> + <summary> + sets how many results to return, the lower the count the faster it is to download the lobby results + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.RequestAsync"> + <summary> + Run the query, get the matching lobbies + </summary> + </member> + <member name="T:Steamworks.Data.OutgoingPacket"> + <summary> + A server query packet. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Address"> + <summary> + Target IP address + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Port"> + <summary> + Target port + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Data"> + <summary> + This data is pooled. Make a copy if you don't use it immediately. + This buffer is also quite large - so pay attention to Size. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Size"> + <summary> + Size of the data + </summary> + </member> + <member name="T:Steamworks.Data.RemotePlaySession"> + <summary> + Represents a RemotePlaySession from the SteamRemotePlay interface + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.IsValid"> + <summary> + Returns true if this session was valid when created. This will stay true even + after disconnection - so be sure to watch SteamRemotePlay.OnSessionDisconnected + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.SteamId"> + <summary> + Get the SteamID of the connected user + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.ClientName"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.FormFactor"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagUser(Steamworks.SteamId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.SetLocation(System.String)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagPublishedFile(Steamworks.Data.PublishedFileId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="P:Steamworks.Data.ServerInfo.Tags"> + <summary> + Gets the individual tags for this server + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToHistory"> + <summary> + Add this server to our history list + If we're already in the history list, weill set the last played time to now + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.QueryRulesAsync"> + <summary> + If this server responds to source engine style queries, we'll be able to get a list of rules here + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromHistory"> + <summary> + Remove this server from our history list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToFavourites"> + <summary> + Add this server to our favourite list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromFavourites"> + <summary> + Remove this server from our favourite list + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultStatus(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Find out the status of an asynchronous inventory result handle. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultItems(Steamworks.Data.SteamInventoryResult_t,Steamworks.Data.SteamItemDetails_t[],System.UInt32@)"> + <summary> + Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultTimestamp(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.CheckResultSteamID(Steamworks.Data.SteamInventoryResult_t,Steamworks.SteamId)"> + <summary> + Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.DestroyResult(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Destroys a result handle and frees all associated memory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetAllItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + Captures the entire state of the current users Steam inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetItemsByID(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId@,System.UInt32)"> + <summary> + Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GrantPromoItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only). + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.ConsumeItem(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId,System.UInt32)"> + <summary> + ConsumeItem() removes items from the inventory permanently. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.SendItemDropHeartbeat"> + <summary> + Deprecated method. Playtime accounting is performed on the Steam servers. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.TriggerItemDrop(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryDefId)"> + <summary> + Playtime credit must be consumed and turned into item drops by your game. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.LoadItemDefinitions"> + <summary> + LoadItemDefinitions triggers the automatic load and refresh of item definitions. + </summary> + </member> + <member name="M:Steamworks.ISteamUserStats.DownloadLeaderboardEntriesForUsers(Steamworks.Data.SteamLeaderboard_t,Steamworks.SteamId[],System.Int32)"> + <summary> + Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.Interface"> + <summary> + An optional interface to use instead of deriving + </summary> + </member> + <member name="F:Steamworks.ConnectionManager.Connection"> + <summary> + The actual connection we're managing + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.ConnectionInfo"> + <summary> + The last received ConnectionInfo + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We're trying to connect! + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We started connecting to this guy + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + We got disconnected + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnMessage(System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Must call Accept or Close on the connection within a second or so + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection leaves + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnMessage(Steamworks.Data.Connection,Steamworks.Data.NetIdentity,System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message from a connection + </summary> + </member> + <member name="T:Steamworks.SocketManager"> + <summary> + Used as a base to create your networking server. This creates a socket + and listens/communicates with multiple queries. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Default behaviour is to accept every connection + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="P:Steamworks.ServerList.Base.AppId"> + <summary> + Which app we're querying. Defaults to the current app. + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnChanges"> + <summary> + When a new server is added, this function will get called + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnResponsiveServer"> + <summary> + Called for every responsive server + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Responsive"> + <summary> + A list of servers that responded. If you're only interested in servers that responded since you + last updated, then simply clear this list. + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Unresponsive"> + <summary> + A list of servers that were in the master list but didn't respond. + </summary> + </member> + <member name="M:Steamworks.ServerList.Base.RunQueryAsync(System.Single)"> + <summary> + Query the server list. Task result will be true when finished + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamApps"> + <summary> + Exposes a wide range of information and actions for applications and Downloadable Content (DLC). + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnDlcInstalled"> + <summary> + posted after the user gains ownership of DLC and that DLC is installed + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnNewLaunchParameters"> + <summary> + posted after the user gains executes a Steam URL with command line or query parameters + such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc + while the game is already running. The new params can be queried + with GetLaunchQueryParam and GetLaunchCommandLine + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribed"> + <summary> + Checks if the active user is subscribed to the current App ID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFamilySharing"> + <summary> + Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsLowVoilence"> + <summary> + Checks if the license owned by the user provides low violence depots. + Low violence depots are useful for copies sold in countries that have content restrictions + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsCybercafe"> + <summary> + Checks whether the current App ID license is for Cyber Cafes. + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsVACBanned"> + <summary> + CChecks if the user has a VAC ban on their account + </summary> + </member> + <member name="P:Steamworks.SteamApps.GameLanguage"> + <summary> + Gets the current language that the user has set. + This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AvailableLanguages"> + <summary> + Gets a list of the languages the current app supports. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsSubscribedToApp(Steamworks.AppId)"> + <summary> + Checks if the active user is subscribed to a specified AppId. + Only use this if you need to check ownership of another game related to yours, a demo for example. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsDlcInstalled(Steamworks.AppId)"> + <summary> + Checks if the user owns a specific DLC and if the DLC is installed + </summary> + </member> + <member name="M:Steamworks.SteamApps.PurchaseTime(Steamworks.AppId)"> + <summary> + Returns the time of the purchase of the app + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFreeWeekend"> + <summary> + Checks if the user is subscribed to the current app through a free weekend + This function will return false for users who have a retail or other type of license + Before using, please ask your Valve technical contact how to package and secure your free weekened + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcInformation"> + <summary> + Returns metadata for all available DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.UninstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="P:Steamworks.SteamApps.CurrentBetaName"> + <summary> + Returns null if we're not on a beta branch, else the name of the branch + </summary> + </member> + <member name="M:Steamworks.SteamApps.MarkContentCorrupt(System.Boolean)"> + <summary> + Allows you to force verify game content on next launch. + + If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), + you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit. + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstalledDepots(Steamworks.AppId)"> + <summary> + Gets a list of all installed depots for a given App ID in mount order + </summary> + </member> + <member name="M:Steamworks.SteamApps.AppInstallDir(Steamworks.AppId)"> + <summary> + Gets the install folder for a specific AppID. + This works even if the application is not installed, based on where the game would be installed with the default Steam library location. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsAppInstalled(Steamworks.AppId)"> + <summary> + The app may not actually be owned by the current user, they may have it left over from a free weekend, etc. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AppOwner"> + <summary> + Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed.. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetLaunchParam(System.String)"> + <summary> + Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. + Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. + Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + but it is advised that you not param names beginning with an underscore for your own features. + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcDownloadProgress(Steamworks.AppId)"> + <summary> + Gets the download progress for optional DLC. + </summary> + </member> + <member name="P:Steamworks.SteamApps.BuildId"> + <summary> + Gets the buildid of this app, may change at any time based on backend updates to the game. + Defaults to 0 if you're not running a build downloaded from steam. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetFileDetailsAsync(System.String)"> + <summary> + Asynchronously retrieves metadata details about a specific file in the depot manifest. + Currently provides: + </summary> + </member> + <member name="P:Steamworks.SteamApps.CommandLine"> + <summary> + Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. + This method of passing a connect string (used when joining via rich presence, accepting an + invite, etc) is preferable to passing the connect string on the operating system command + line, which is a security risk. In order for rich presence joins to go through this + path and not be placed on the OS command line, you must set a value in your app's + configuration on Steam. Ask Valve for help with this. + </summary> + </member> + <member name="M:Steamworks.SteamClient.Init(System.UInt32,System.Boolean)"> + <summary> + Initialize the steam client. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="P:Steamworks.SteamClient.IsLoggedOn"> + <summary> + Checks if the current user's Steam client is connected to the Steam servers. + If it's not then no real-time services provided by the Steamworks API will be enabled. The Steam + client will automatically be trying to recreate the connection as often as possible. When the + connection is restored a SteamServersConnected_t callback will be posted. + You usually don't need to check for this yourself. All of the API calls that rely on this will + check internally. Forcefully disabling stuff when the player loses access is usually not a + very good experience for the player and you could be preventing them from accessing APIs that do not + need a live connection to Steam. + </summary> + </member> + <member name="P:Steamworks.SteamClient.SteamId"> + <summary> + Gets the Steam ID of the account currently logged into the Steam client. This is + commonly called the 'current user', or 'local user'. + A Steam ID is a unique identifier for a Steam accounts, Steam groups, Lobbies and Chat + rooms, and used to differentiate users in all parts of the Steamworks API. + </summary> + </member> + <member name="P:Steamworks.SteamClient.Name"> + <summary> + returns the local players name - guaranteed to not be NULL. + this is the same name as on the users community profile page + </summary> + </member> + <member name="P:Steamworks.SteamClient.State"> + <summary> + gets the status of the current user + </summary> + </member> + <member name="P:Steamworks.SteamClient.AppId"> + <summary> + returns the appID of the current process + </summary> + </member> + <member name="M:Steamworks.SteamClient.RestartAppIfNecessary(System.UInt32)"> + <summary> + Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't + this returns true then it starts the Steam client if required and launches your game again through it, + and you should quit your process as soon as possible. This effectively runs steam://run/AppId so it + may not relaunch the exact executable that called it, as it will always relaunch from the version + installed in your Steam library folder/ + Note that during development, when not launching via Steam, this might always return true. + </summary> + </member> + <member name="M:Steamworks.SteamClient.ValidCheck"> + <summary> + Called in interfaces that rely on this being initialized + </summary> + </member> + <member name="T:Steamworks.SteamFriends"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnChatMessage"> + <summary> + Called when chat message has been received from a friend. You'll need to turn on + ListenForFriendsMessages to recieve this. (friend, msgtype, message) + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnPersonaStateChange"> + <summary> + called when a friends' status changes + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameRichPresenceJoinRequested"> + <summary> + Called when the user tries to join a game from their friends list + rich presence will have been set with the "connect" key which is set here + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameOverlayActivated"> + <summary> + Posted when game overlay activates or deactivates + the game can use this to be pause or resume single player games + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameServerChangeRequested"> + <summary> + Called when the user tries to join a different game server from their friends list + game client should attempt to connect to specified server when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameLobbyJoinRequested"> + <summary> + Called when the user tries to join a lobby from their friends list + game client should attempt to connect to specified lobby when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnFriendRichPresenceUpdate"> + <summary> + Callback indicating updated data about friends rich presence information + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenOverlay(System.String)"> + <summary> + The dialog to open. Valid options are: + "friends", + "community", + "players", + "settings", + "officialgamegroup", + "stats", + "achievements". + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenUserOverlay(Steamworks.SteamId,System.String)"> + <summary> + "steamid" - Opens the overlay web browser to the specified user or groups profile. + "chat" - Opens a chat window to the specified user, or joins the group chat. + "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API. + "stats" - Opens the overlay web browser to the specified user's stats. + "achievements" - Opens the overlay web browser to the specified user's achievements. + "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend. + "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend. + "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite. + "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenStoreOverlay(Steamworks.AppId)"> + <summary> + Activates the Steam Overlay to the Steam store page for the provided app. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenWebOverlay(System.String,System.Boolean)"> + <summary> + Activates Steam Overlay web browser directly to the specified URL. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenGameInviteOverlay(Steamworks.SteamId)"> + <summary> + Activates the Steam Overlay to open the invite dialog. Invitations sent from this dialog will be for the provided lobby. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetPlayedWith(Steamworks.SteamId)"> + <summary> + Mark a target user as 'played with'. + NOTE: The current user must be in game with the other player for the association to work. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.RequestUserInformation(Steamworks.SteamId,System.Boolean)"> + <summary> + Requests the persona name and optionally the avatar of a specified user. + NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them. + returns true if we're fetching the data, false if we already have it + </summary> + </member> + <member name="M:Steamworks.SteamFriends.GetRichPresence(System.String)"> + <summary> + Find a rich presence value by key for current user. Will be null if not found. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetRichPresence(System.String,System.String)"> + <summary> + Sets a rich presence value by key for current user. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.ClearRichPresence"> + <summary> + Clears all of the current user's rich presence data. + </summary> + </member> + <member name="P:Steamworks.SteamFriends.ListenForFriendsMessages"> + <summary> + Listens for Steam friends chat messages. + You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. + After enabling this you will receive callbacks when ever the user receives a chat message. + </summary> + </member> + <member name="M:Steamworks.SteamInput.RunFrame"> + <summary> + You shouldn't really need to call this because it get called by RunCallbacks on SteamClient + but Valve think it might be a nice idea if you call it right before you get input info - + just to make sure the info you're getting is 100% up to date. + </summary> + </member> + <member name="P:Steamworks.SteamInput.Controllers"> + <summary> + Return a list of connected controllers. + </summary> + </member> + <member name="M:Steamworks.SteamInput.GetDigitalActionGlyph(Steamworks.Controller,System.String)"> + <summary> + Return an absolute path to the PNG image glyph for the provided digital action name. The current + action set in use for the controller will be used for the lookup. You should cache the result and + maintain your own list of loaded PNG assets. + </summary> + <param name="controller"></param> + <param name="action"></param> + <returns></returns> + </member> + <member name="T:Steamworks.SteamInventory"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamInventory.LoadItemDefinitions"> + <summary> + Call this if you're going to want to access definition information. You should be able to get + away with calling this once at the start if your game, assuming your items don't change all the time. + This will trigger OnDefinitionsUpdated at which point Definitions should be set. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.WaitForDefinitions(System.Single)"> + <summary> + Will call LoadItemDefinitions and wait until Definitions is not null + </summary> + </member> + <member name="M:Steamworks.SteamInventory.FindDefinition(Steamworks.Data.InventoryDefId)"> + <summary> + Try to find the definition that matches this definition ID. + Uses a dictionary so should be about as fast as possible. + </summary> + </member> + <member name="P:Steamworks.SteamInventory.Items"> + <summary> + We will try to keep this list of your items automatically up to date. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItems"> + <summary> + Update the list of Items[] + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItemsAsync"> + <summary> + Get all items and return the InventoryResult + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GenerateItemAsync(Steamworks.InventoryDef,System.Int32)"> + <summary> + This is used to grant a specific item to the user. This should + only be used for development prototyping, from a trusted server, + or if you don't care about hacked clients granting arbitrary items. + This call can be disabled by a setting on Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem.Amount[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.DeserializeAsync(System.Byte[],System.Int32)"> + <summary> + Deserializes a result set and verifies the signature bytes. + This call has a potential soft-failure mode where the Result is expired, it will + still succeed in this mode.The "expired" + result could indicate that the data may be out of date - not just due to timed + expiration( one hour ), but also because one of the items in the result set may + have been traded or consumed since the result set was generated.You could compare + the timestamp from GetResultTimestamp to ISteamUtils::GetServerRealTime to determine + how old the data is. You could simply ignore the "expired" result code and + continue as normal, or you could request the player with expired data to send + an updated result set. + You should call CheckResultSteamID on the result handle when it completes to verify + that a remote player is not pretending to have a different user's inventory. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GrantPromoItemsAsync"> + <summary> + Grant all promotional items the user is eligible for + </summary> + </member> + <member name="M:Steamworks.SteamInventory.TriggerItemDropAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger an item drop for this user. This is for timed drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.AddPromoItemAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger a promo item drop. You can call this at startup, it won't + give users multiple promo drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.StartPurchaseAsync(Steamworks.InventoryDef[])"> + <summary> + Start buying a cart load of items. This will return a positive result is the purchase has + begun. You should listen out for SteamUser.OnMicroTxnAuthorizationResponse for a success. + </summary> + </member> + <member name="T:Steamworks.SteamMatchmaking"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="P:Steamworks.SteamMatchmaking.MaxLobbyKeyLength"> + <summary> + Maximum number of characters a lobby metadata key can be + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyInvite"> + <summary> + Someone invited you to a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyEntered"> + <summary> + You joined a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyCreated"> + <summary> + You created a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyGameCreated"> + <summary> + A game server has been associated with the lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyDataChanged"> + <summary> + The lobby metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDataChanged"> + <summary> + The lobby member metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberJoined"> + <summary> + The lobby member joined + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberLeave"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDisconnected"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberKicked"> + <summary> + The lobby member was kicked. The 3rd param is the user that kicked them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberBanned"> + <summary> + The lobby member was banned. The 3rd param is the user that banned them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnChatMessage"> + <summary> + A chat message was recieved from a member of a lobby + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.CreateLobbyAsync(System.Int32)"> + <summary> + Creates a new invisible lobby. Call lobby.SetPublic to take it online. + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.JoinLobbyAsync(Steamworks.SteamId)"> + <summmary> + Attempts to directly join the specified lobby + </summmary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetFavoriteServers"> + <summary> + Get a list of servers that are on your favorites list + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetHistoryServers"> + <summary> + Get a list of servers that you have added to your play history + </summary> + </member> + <member name="T:Steamworks.SteamMatchmakingServers"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="T:Steamworks.SteamMusic"> + <summary> + Functions to control music playback in the steam client. + This gives games the opportunity to do things like pause the music or lower the volume, + when an important cut scene is shown, and start playing afterwards. + Nothing uses Steam Music though so this can probably get fucked + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnPlaybackChanged"> + <summary> + Playback status changed + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnVolumeChanged"> + <summary> + Volume changed, parameter is new volume + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsEnabled"> + <summary> + Checks if Steam Music is enabled + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsPlaying"> + <summary> + true if a song is currently playing, paused, or queued up to play; otherwise false. + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Status"> + <summary> + Gets the current status of the Steam Music player + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayPrevious"> + <summary> + Have the Steam Music player play the previous song. + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayNext"> + <summary> + Have the Steam Music player skip to the next song + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Volume"> + <summary> + Gets/Sets the current volume of the Steam Music player + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PSessionRequest"> + <summary> + This SteamId wants to send you a message. You should respond by calling AcceptP2PSessionWithUser + if you want to recieve their messages + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PConnectionFailed"> + <summary> + Called when packets can't get through to the specified user. + All queued packets unsent at this point will be dropped, further attempts + to send will retry making the connection (but will be dropped if we fail again). + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AcceptP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called in response to a OnP2PSessionRequest + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AllowP2PPacketRelay(System.Boolean)"> + <summary> + Allow or disallow P2P connects to fall back on Steam server relay if direct + connection or NAT traversal can't be established. Applies to connections + created after setting or old connections that need to reconnect. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.CloseP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called when you're done communicating with a user, as this will + free up all of the resources allocated for the connection under-the-hood. + If the remote user tries to send data to you again, a new OnP2PSessionRequest + callback will be posted + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.IsP2PPacketAvailable(System.Int32)"> + <summary> + Checks if a P2P packet is available to read, and gets the size of the message if there is one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte[],System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte*,System.UInt32,System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte[],System.Int32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte*,System.UInt32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket``1(Steamworks.Data.NetAddress)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6) + + To use this derive a class from SocketManager and override as much as you want. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket(Steamworks.Data.NetAddress,Steamworks.ISocketManager)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6). + + To use this you should pass a class that inherits ISocketManager. You can use + SocketManager to get connections and send messages, but the ISocketManager class + will received all the appropriate callbacks. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal``1(Steamworks.Data.NetAddress)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal(Steamworks.Data.NetAddress,Steamworks.IConnectionManager)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateRelaySocket``1(System.Int32)"> + <summary> + Creates a server that will be relayed via Valve's network (hiding the IP and improving ping) + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectRelay``1(Steamworks.SteamId,System.Int32)"> + <summary> + Connect to a relay server + </summary> + </member> + <member name="T:Steamworks.SteamNetworkingUtils"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamNetworkingUtils.OnDebugOutput"> + <summary> + A function to receive debug network information on. This will do nothing + unless you set DebugLevel to something other than None. + + You should set this to an appropriate level instead of setting it to the highest + and then filtering it by hand because a lot of energy is used by creating the strings + and your frame rate will tank and you won't know why. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Status"> + <summary> + The latest available status gathered from the SteamRelayNetworkStatus callback + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.InitRelayNetworkAccess"> + <summary> + If you know that you are going to be using the relay network (for example, + because you anticipate making P2P connections), call this to initialize the + relay network. If you do not call this, the initialization will + be delayed until the first time you use a feature that requires access + to the relay network, which will delay that first access. + + You can also call this to force a retry if the previous attempt has failed. + Performing any action that requires access to the relay network will also + trigger a retry, and so calling this function is never strictly necessary, + but it can be useful to call it a program launch time, if access to the + relay network is anticipated. + + Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + callbacks to know when initialization has completed. + Typically initialization completes in a few seconds. + + Note: dedicated servers hosted in known data centers do *not* need + to call this, since they do not make routing decisions. However, if + the dedicated server will be using P2P functionality, it will act as + a "client" and this should be called. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.LocalPingLocation"> + <summary> + Return location info for the current host. + + It takes a few seconds to initialize access to the relay network. If + you call this very soon after startup the data may not be available yet. + + This always return the most up-to-date information we have available + right now, even if we are in the middle of re-calculating ping times. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + <summary> + Same as PingLocation.EstimatePingTo, but assumes that one location is the local host. + This is a bit faster, especially if you need to calculate a bunch of + these in a loop to find the fastest one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.WaitForPingDataAsync(System.Single)"> + <summary> + If you need ping information straight away, wait on this. It will return + immediately if you already have up to date ping data + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.ConnectionTimeout"> + <summary> + Timeout value (in ms) to use when first connecting + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Timeout"> + <summary> + Timeout value (in ms) to use after connection is established + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.SendBufferSize"> + <summary> + Upper limit of buffered pending bytes to be sent. + If this is reached SendMessage will return LimitExceeded. + Default is 524288 bytes (512k) + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.DebugLevel"> + <summary> + Get Debug Information via OnDebugOutput event + + Except when debugging, you should only use NetDebugOutput.Msg + or NetDebugOutput.Warning. For best performance, do NOT + request a high detail level and then filter out messages in the callback. + + This incurs all of the expense of formatting the messages, which are then discarded. + Setting a high priority value (low numeric value) here allows the library to avoid + doing this work. + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugLevel"> + <summary> + So we can remember and provide a Get for DebugLEvel + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugFunc"> + <summary> + We need to keep the delegate around until it's not used anymore + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OnDebugMessage(Steamworks.NetDebugOutput,System.IntPtr)"> + <summary> + This can be called from other threads - so we're going to queue these up and process them in a safe place. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OutputDebugMessages"> + <summary> + Called regularly from the Dispatch loop so we can provide a timely + stream of messages. + </summary> + </member> + <member name="T:Steamworks.SteamParental"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamParental.OnSettingsChanged"> + <summary> + Parental Settings Changed + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockEnabled"> + <summary> + + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockLocked"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsAppBlocked(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsAppInBlockList(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsFeatureBlocked(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsFeatureInBlockList(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="T:Steamworks.SteamParties"> + <summary> + This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. + Tell Steam the number of player spots that are available for your party, and a join-game string, and it + will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. + Adjust the number of open slots if other players join through alternate matchmaking methods. + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnBeaconLocationsUpdated"> + <summary> + The list of possible Party beacon locations has changed + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnActiveBeaconsUpdated"> + <summary> + The list of active beacons may have changed + </summary> + </member> + <member name="T:Steamworks.SteamRemotePlay"> + <summary> + Functions that provide information about Steam Remote Play sessions, streaming your game content to another computer or to a Steam Link app or hardware. + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionConnected"> + <summary> + Called when a session is connected + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionDisconnected"> + <summary> + Called when a session becomes disconnected + </summary> + </member> + <member name="P:Steamworks.SteamRemotePlay.SessionCount"> + <summary> + Get the number of currently connected Steam Remote Play sessions + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.GetSession(System.Int32)"> + <summary> + Get the currently connected Steam Remote Play session ID at the specified index. + IsValid will return false if it's out of bounds + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.SendInvite(Steamworks.SteamId)"> + <summary> + Invite a friend to Remote Play Together + This returns false if the invite can't be sent + </summary> + </member> + <member name="T:Steamworks.SteamRemoteStorage"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileWrite(System.String,System.Byte[])"> + <summary> + Creates a new file, writes the bytes to the file, and then closes the file. + If the target file already exists, it is overwritten + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileRead(System.String)"> + <summary> + Opens a binary file, reads the contents of the file into a byte array, and then closes the file. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileExists(System.String)"> + <summary> + Checks whether the specified file exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FilePersisted(System.String)"> + <summary> + Checks if a specific file is persisted in the steam cloud. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileTime(System.String)"> + <summary> + Gets the specified file's last modified date/time. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileSize(System.String)"> + <summary> + Gets the specified files size in bytes. 0 if not exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileForget(System.String)"> + <summary> + Deletes the file from remote storage, but leaves it on the local disk and remains accessible from the API. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileDelete(System.String)"> + <summary> + Deletes a file from the local disk, and propagates that delete to the cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaBytes"> + <summary> + Number of bytes total + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaUsedBytes"> + <summary> + Number of bytes used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaRemainingBytes"> + <summary> + Number of bytes remaining until your quota is used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabled"> + <summary> + returns true if IsCloudEnabledForAccount AND IsCloudEnabledForApp + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForAccount"> + <summary> + Checks if the account wide Steam Cloud setting is enabled for this user + or if they disabled it in the Settings->Cloud dialog. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForApp"> + <summary> + Checks if the per game Steam Cloud setting is enabled for this user + or if they disabled it in the Game Properties->Update dialog. + + This must only ever be set as the direct result of the user explicitly + requesting that it's enabled or not. This is typically accomplished with + a checkbox within your in-game options + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.FileCount"> + <summary> + Gets the total number of local files synchronized by Steam Cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.Files"> + <summary> + Get a list of filenames synchronized by Steam Cloud + </summary> + </member> + <member name="T:Steamworks.SteamScreenshots"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotRequested"> + <summary> + A screenshot has been requested by the user from the Steam screenshot hotkey. + This will only be called if Hooked is true, in which case Steam + will not take the screenshot itself. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotReady"> + <summary> + A screenshot successfully written or otherwise added to the library and can now be tagged. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotFailed"> + <summary> + A screenshot attempt failed + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.WriteScreenshot(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.AddScreenshot(System.String,System.String,System.Int32,System.Int32)"> + <summary> + Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + JPEG, TGA, and PNG formats are supported. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.TriggerScreenshot"> + <summary> + Causes the Steam overlay to take a screenshot. + If screenshots are being hooked by the game then a + ScreenshotRequested callback is sent back to the game instead. + </summary> + </member> + <member name="P:Steamworks.SteamScreenshots.Hooked"> + <summary> + Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or if the game handles them. + Hooking is disabled by default, and only ever enabled if you do so with this function. + If the hooking is enabled, then the ScreenshotRequested_t callback will be sent if the user presses the hotkey or + when TriggerScreenshot is called, and then the game is expected to call WriteScreenshot or AddScreenshotToLibrary in response. + </summary> + </member> + <member name="T:Steamworks.SteamServer"> + <summary> + Provides the core of the Steam Game Servers API + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnValidateAuthTicketResponse"> + <summary> + User has been authed or rejected + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the server now is logged on and has a working connection to the Steam master server. + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServerConnectFailure"> + <summary> + This will occur periodically if the Steam client is not connected, and has failed when retrying to establish a connection (result, stilltrying) + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersDisconnected"> + <summary> + Disconnected from Steam + </summary> + </member> + <member name="M:Steamworks.SteamServer.Init(Steamworks.AppId,Steamworks.SteamServerInit,System.Boolean)"> + <summary> + Initialize the steam server. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="M:Steamworks.SteamServer.RunCallbacks"> + <summary> + Run the callbacks. This is also called in Async callbacks. + </summary> + </member> + <member name="P:Steamworks.SteamServer.DedicatedServer"> + <summary> + Sets whether this should be marked as a dedicated server. + If not, it is assumed to be a listen server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MaxPlayers"> + <summary> + Gets or sets the current MaxPlayers. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.BotCount"> + <summary> + Gets or sets the current BotCount. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MapName"> + <summary> + Gets or sets the current Map Name. + </summary> + </member> + <member name="P:Steamworks.SteamServer.ModDir"> + <summary> + Gets or sets the current ModDir + </summary> + </member> + <member name="P:Steamworks.SteamServer.Product"> + <summary> + Gets the current product + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameDescription"> + <summary> + Gets or sets the current Product + </summary> + </member> + <member name="P:Steamworks.SteamServer.ServerName"> + <summary> + Gets or sets the current ServerName + </summary> + </member> + <member name="P:Steamworks.SteamServer.Passworded"> + <summary> + Set whether the server should report itself as passworded + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameTags"> + <summary> + Gets or sets the current GameTags. This is a comma seperated list of tags for this server. + When querying the server list you can filter by these tags. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOnAnonymous"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOff"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="P:Steamworks.SteamServer.LoggedOn"> + <summary> + Returns true if the server is connected and registered with the Steam master server + You should have called LogOnAnonymous etc on startup. + </summary> + </member> + <member name="P:Steamworks.SteamServer.PublicIp"> + <summary> + To the best of its ability this tries to get the server's + current public ip address. Be aware that this is likely to return + null for the first few seconds after initialization. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeats"> + <summary> + Enable or disable heartbeats, which are sent regularly to the master server. + Enabled by default. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeatRate"> + <summary> + Set heartbeat interval, if automatic heartbeats are enabled. + You can leave this at the default. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ForceHeartbeat"> + <summary> + Force send a heartbeat to the master server instead of waiting + for the next automatic update (if you've left them enabled) + </summary> + </member> + <member name="M:Steamworks.SteamServer.UpdatePlayer(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Update this connected player's information. You should really call this + any time a player's name or score changes. This keeps the information shown + to server queries up to date. + </summary> + </member> + <member name="M:Steamworks.SteamServer.SetKey(System.String,System.String)"> + <summary> + Sets a Key Value. These can be anything you like, and are accessible + when querying servers from the server list. + + Information describing gamemodes are common here. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ClearKeys"> + <summary> + Remove all key values + </summary> + </member> + <member name="M:Steamworks.SteamServer.BeginAuthSession(System.Byte[],Steamworks.SteamId)"> + <summary> + Start authorizing a ticket. This user isn't authorized yet. Wait for a call to OnAuthChange. + </summary> + </member> + <member name="M:Steamworks.SteamServer.EndSession(Steamworks.SteamId)"> + <summary> + Forget this guy. They're no longer in the game. + </summary> + </member> + <member name="M:Steamworks.SteamServer.GetOutgoingPacket(Steamworks.Data.OutgoingPacket@)"> + <summary> + If true, Steam wants to send a packet. You should respond by sending + this packet in an unconnected way to the returned Address and Port. + </summary> + <param name="packet">Packet to send. The Data passed is pooled - so use it immediately.</param> + <returns>True if we want to send a packet</returns> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.Byte[],System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.IntPtr,System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.UserHasLicenseForApp(Steamworks.SteamId,Steamworks.AppId)"> + <summary> + Does the user own this app (which could be DLC) + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.RequestUserStatsAsync(Steamworks.SteamId)"> + <summary> + Downloads stats for the user + If the user has no stats will return fail + these stats will only be auto-updated for clients playing on the server + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Unlocks the specified achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.ClearAchievement(Steamworks.SteamId,System.String)"> + <summary> + Resets the unlock status of an achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Return true if available, exists and unlocked + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.StoreUserStats(Steamworks.SteamId)"> + <summary> + Once you've set a stat change on a user you need to commit your changes. + You can do that using this function. The callback will let you know if + your action succeeded, but most of the time you can fire and forget. + </summary> + </member> + <member name="T:Steamworks.SteamUGC"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUGC.OnDownloadItemResult"> + <summary> + Posted after Download call + </summary> + </member> + <member name="M:Steamworks.SteamUGC.Download(Steamworks.Data.PublishedFileId,System.Boolean)"> + <summary> + Start downloading this item. You'll get notified of completion via OnDownloadItemResult. + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="highPriority">If true this should go straight to the top of the download list</param> + <returns>true if nothing went wrong and the download is started</returns> + </member> + <member name="M:Steamworks.SteamUGC.DownloadAsync(Steamworks.Data.PublishedFileId,System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Will attempt to download this item asyncronously - allowing you to instantly react to its installation + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="progress">An optional callback</param> + <param name="ct">Allows you to send a message to cancel the download anywhere during the process</param> + <param name="milisecondsUpdateDelay">How often to call the progress function</param> + <returns>true if downloaded and installed correctly</returns> + </member> + <member name="M:Steamworks.SteamUGC.QueryFileAsync(Steamworks.Data.PublishedFileId)"> + <summary> + Utility function to fetch a single item. Internally this uses Ugc.FileQuery - + which you can use to query multiple items if you need to. + </summary> + </member> + <member name="T:Steamworks.SteamUser"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the Steam client now has a working connection to the Steam servers. + Usually this will have occurred before the game has launched, and should only be seen if the + user has dropped connection due to a networking issue or a Steam server update. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServerConnectFailure"> + <summary> + Called when a connection attempt has failed. + This will occur periodically if the Steam client is not connected, + and has failed when retrying to establish a connection. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersDisconnected"> + <summary> + Called if the client has lost connection to the Steam servers. + Real-time services will be disabled until a matching OnSteamServersConnected has been posted. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnClientGameServerDeny"> + <summary> + Sent by the Steam server to the client telling it to disconnect from the specified game server, + which it may be in the process of or already connected to. + The game client should immediately disconnect upon receiving this message. + This can usually occur if the user doesn't have rights to play on the game server. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnLicensesUpdated"> + <summary> + Called whenever the users licenses (owned packages) changes. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnValidateAuthTicketResponse"> + <summary> + Called when an auth ticket has been validated. + The first parameter is the steamid of this user + The second is the Steam ID that owns the game, this will be different from the first + if the game is being borrowed via Steam Family Sharing + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGetAuthSessionTicketResponse"> + <summary> + Used internally for GetAuthSessionTicketAsync + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnMicroTxnAuthorizationResponse"> + <summary> + Called when a user has responded to a microtransaction authorization request. + ( appid, orderid, user authorized ) + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGameWebCallback"> + <summary> + Sent to your game in response to a steam://gamewebcallback/ command from a user clicking a link in the Steam overlay browser. + You can use this to add support for external site signups where you want to pop back into the browser after some web page + signup sequence, and optionally get back some detail about that. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnDurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, + half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.SteamUser.VoiceRecord"> + <summary> + Starts/Stops voice recording. + Once started, use GetAvailableVoice and GetVoice to get the data, and then call StopVoiceRecording + when the user has released their push-to-talk hotkey or the game session has completed. + </summary> + </member> + <member name="P:Steamworks.SteamUser.HasVoiceData"> + <summary> + Returns true if we have voice data waiting to be read + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceData(System.IO.Stream)"> + <summary> + Reads the voice data and returns the number of bytes written. + The compressed data can be transmitted by your application and decoded back into raw audio data using + DecompressVoice on the other side. The compressed data provided is in an arbitrary format and is not meant to be played directly. + This should be called once per frame, and at worst no more than four times a second to keep the microphone input delay as low as + possible. Calling this any less may result in gaps in the returned stream. + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceDataBytes"> + <summary> + Reads the voice data and returns the bytes. You should obviously ideally be using + ReadVoiceData because it won't be creating a new byte array every call. But this + makes it easier to get it working, so let the babies have their bottle. + </summary> + </member> + <member name="M:Steamworks.SteamUser.DecompressVoice(System.IO.Stream,System.Int32,System.IO.Stream)"> + <summary> + Decodes the compressed voice data returned by GetVoice. + The output data is raw single-channel 16-bit PCM audio.The decoder supports any sample rate from 11025 to 48000. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicket"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicketAsync(System.Double)"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + This waits for a positive response from the backend before returning the ticket. This means + the ticket is definitely ready to go as soon as it returns. Will return null if the callback + times out or returns negatively. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsBehindNAT"> + <summary> + Checks if the current users looks like they are behind a NAT device. + This is only valid if the user is connected to the Steam servers and may not catch all forms of NAT. + </summary> + </member> + <member name="P:Steamworks.SteamUser.SteamLevel"> + <summary> + Gets the Steam level of the user, as shown on their Steam community profile. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetStoreAuthUrlAsync(System.String)"> + <summary> + Requests a URL which authenticates an in-game browser for store check-out, and then redirects to the specified URL. + As long as the in-game browser accepts and handles session cookies, Steam microtransaction checkout pages will automatically recognize the user instead of presenting a login page. + NOTE: The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. + NOTE: The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneVerified"> + <summary> + Checks whether the current user has verified their phone number. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsTwoFactorEnabled"> + <summary> + Checks whether the current user has Steam Guard two factor authentication enabled on their account. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneIdentifying"> + <summary> + Checks whether the user's phone number is used to uniquely identify them. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneRequiringVerification"> + <summary> + Checks whether the current user's phone number is awaiting (re)verification. + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync(System.Byte[])"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + If you get a null result from this it's probably because you're calling it too often. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetDurationControl"> + <summary> + Get anti indulgence / duration control + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementIconFetched"> + <summary> + called when the achivement icon is loaded + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsReceived"> + <summary> + called when the latests stats and achievements have been received + from the server + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsStored"> + <summary> + result of a request to store the user stats for a game + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementProgress"> + <summary> + result of a request to store the achievements for a game, or an + "indicate progress" call. If both m_nCurProgress and m_nMaxProgress + are zero, that means the achievement has been fully unlocked + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsUnloaded"> + <summary> + Callback indicating that a user's stats have been unloaded + </summary> + </member> + <member name="P:Steamworks.SteamUserStats.Achievements"> + <summary> + Get the available achievements + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.IndicateAchievementProgress(System.String,System.Int32,System.Int32)"> + <summary> + Show the user a pop-up notification with the current progress toward an achievement. + Will return false if RequestCurrentStats has not completed and successfully returned + its callback, if the achievement doesn't exist/has unpublished changes in the app's + Steamworks Admin page, or if the achievement is unlocked. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.PlayerCountAsync"> + <summary> + Tries to get the number of players currently playing this game. + Or -1 if failed. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.StoreStats"> + <summary> + Send the changed stats and achievements data to the server for permanent storage. + If this fails then nothing is sent to the server. It's advisable to keep trying until the call is successful. + This call can be rate limited. Call frequency should be on the order of minutes, rather than seconds.You should only be calling this during major state changes such as the end of a round, the map changing, or the user leaving a server. This call is required to display the achievement unlock notification dialog though, so if you have called SetAchievement then it's advisable to call this soon after that. + If you have stats or achievements that you have saved locally but haven't uploaded with this function when your application process ends then this function will automatically be called. + You can find additional debug information written to the %steam_install%\logs\stats_log.txt file. + This function returns true upon success if : + RequestCurrentStats has completed and successfully returned its callback AND + the current game has stats associated with it in the Steamworks Partner backend, and those stats are published. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestCurrentStats"> + <summary> + Asynchronously request the user's current stats and achievements from the server. + You must always call this first to get the initial status of stats and achievements. + Only after the resulting callback comes back can you start calling the rest of the stats + and achievement functions for the current user. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestGlobalStatsAsync(System.Int32)"> + <summary> + Asynchronously fetches global stats data, which is available for stats marked as + "aggregated" in the App Admin panel of the Steamworks website. + You must have called RequestCurrentStats and it needs to return successfully via + its callback prior to calling this. + </summary> + <param name="days">How many days of day-by-day history to retrieve in addition to the overall totals. The limit is 60.</param> + <returns>OK indicates success, InvalidState means you need to call RequestCurrentStats first, Fail means the remote call failed</returns> + </member> + <member name="M:Steamworks.SteamUserStats.FindOrCreateLeaderboardAsync(System.String,Steamworks.Data.LeaderboardSort,Steamworks.Data.LeaderboardDisplay)"> + <summary> + Gets a leaderboard by name, it will create it if it's not yet created. + Leaderboards created with this function will not automatically show up in the Steam Community. + You must manually set the Community Name field in the App Admin panel of the Steamworks website. + As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on + the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of + dynamically created leaderboards. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Int32)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Single)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Int32)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Single)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatInt(System.String)"> + <summary> + Get a Int stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatFloat(System.String)"> + <summary> + Get a float stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.ResetAll(System.Boolean)"> + <summary> + Practically wipes the slate clean for this user. If includeAchievements is true, will wipe + any achievements too. + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamUtils"> + <summary> + Interface which provides access to a range of miscellaneous utility functions + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnIpCountryChanged"> + <summary> + The country of the user changed + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnLowBatteryPower"> + <summary> + Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute + The parameter is the number of minutes left + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnSteamShutdown"> + <summary> + Called when Steam wants to shutdown + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnGamepadTextInputDismissed"> + <summary> + Big Picture gamepad text input has been closed. Parameter is true if text was submitted, false if cancelled etc. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceAppActive"> + <summary> + Returns the number of seconds since the application was active + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceComputerActive"> + <summary> + Returns the number of seconds since the user last moved the mouse etc + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamServerTime"> + <summary> + Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IpCountry"> + <summary> + returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + e.g "US" or "UK". + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImageSize(System.Int32,System.UInt32@,System.UInt32@)"> + <summary> + returns true if the image exists, and the buffer was successfully filled out + results are returned in RGBA format + the destination buffer size should be 4 * height * width * sizeof(char) + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImage(System.Int32)"> + <summary> + returns the image in RGBA format + </summary> + </member> + <member name="P:Steamworks.SteamUtils.UsingBatteryPower"> + <summary> + Returns true if we're using a battery (ie, a laptop not plugged in) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.CurrentBatteryPower"> + <summary> + Returns battery power [0-1] + </summary> + </member> + <member name="P:Steamworks.SteamUtils.OverlayNotificationPosition"> + <summary> + Sets the position where the overlay instance for the currently calling game should show notifications. + This position is per-game and if this function is called from outside of a game context it will do nothing. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsOverlayEnabled"> + <summary> + Returns true if the overlay is running and the user can access it. The overlay process could take a few seconds to + start and hook the game process, so this function will initially return false while the overlay is loading. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.DoesOverlayNeedPresent"> + <summary> + Normally this call is unneeded if your game has a constantly running frame loop that calls the + D3D Present API, or OGL SwapBuffers API every frame. + + However, if you have a game that only refreshes the screen on an event driven basis then that can break + the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + need to Present() to the screen any time an even needing a notification happens or when the overlay is + brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.CheckFileSignatureAsync(System.String)"> + <summary> + Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + of the partner site, for example to refuse to load modified executable files. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.ShowGamepadTextInput(Steamworks.GamepadTextInputMode,Steamworks.GamepadTextInputLineMode,System.String,System.Int32,System.String)"> + <summary> + Activates the Big Picture text input dialog which only supports gamepad input + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetEnteredGamepadText"> + <summary> + Returns previously entered text + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamUILanguage"> + <summary> + returns the language the steam client is running in, you probably want + Apps.CurrentGameLanguage instead, this is for very special usage cases + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamRunningInVR"> + <summary> + returns true if Steam itself is running in VR mode + </summary> + </member> + <member name="M:Steamworks.SteamUtils.SetOverlayNotificationInset(System.Int32,System.Int32)"> + <summary> + Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamInBigPictureMode"> + <summary> + returns true if Steam and the Steam Overlay are running in Big Picture mode + Games much be launched through the Steam client to enable the Big Picture overlay. During development, + a game can be added as a non-steam game to the developers library to test this feature + </summary> + </member> + <member name="M:Steamworks.SteamUtils.StartVRDashboard"> + <summary> + ask SteamUI to create and render its OpenVR dashboard + </summary> + </member> + <member name="P:Steamworks.SteamUtils.VrHeadsetStreaming"> + <summary> + Set whether the HMD content will be streamed via Steam In-Home Streaming + If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + (this is useful for games that have asymmetric multiplayer gameplay) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamChinaLauncher"> + <summary> + Returns whether this steam client is a Steam China specific client, vs the global client + </summary> + </member> + <member name="T:Steamworks.SteamVideo"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="P:Steamworks.SteamVideo.IsBroadcasting"> + <summary> + Return true if currently using Steam's live broadcasting + </summary> + </member> + <member name="P:Steamworks.SteamVideo.NumViewers"> + <summary> + If we're broadcasting, will return the number of live viewers + </summary> + </member> + <member name="P:Steamworks.Controller.ActionSet"> + <summary> + Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + our state loops, instead of trying to place it in all of your state transitions. + </summary> + </member> + <member name="M:Steamworks.Controller.GetDigitalState(System.String)"> + <summary> + Returns the current state of the supplied digital game action + </summary> + </member> + <member name="M:Steamworks.Controller.GetAnalogState(System.String)"> + <summary> + Returns the current state of these supplied analog game action + </summary> + </member> + <member name="P:Steamworks.Friend.IsMe"> + <summary> + Returns true if this is the local user + </summary> + </member> + <member name="P:Steamworks.Friend.IsFriend"> + <summary> + Return true if this is a friend + </summary> + </member> + <member name="P:Steamworks.Friend.IsBlocked"> + <summary> + Returns true if you have this user blocked + </summary> + </member> + <member name="P:Steamworks.Friend.IsPlayingThisGame"> + <summary> + Return true if this user is playing the game we're running + </summary> + </member> + <member name="P:Steamworks.Friend.IsOnline"> + <summary> + Returns true if this friend is online + </summary> + </member> + <member name="M:Steamworks.Friend.RequestInfoAsync"> + <summary> + Sometimes we don't know the user's name. This will wait until we have + downloaded the information on this user. + </summary> + </member> + <member name="P:Steamworks.Friend.IsAway"> + <summary> + Returns true if this friend is marked as away + </summary> + </member> + <member name="P:Steamworks.Friend.IsBusy"> + <summary> + Returns true if this friend is marked as busy + </summary> + </member> + <member name="P:Steamworks.Friend.IsSnoozing"> + <summary> + Returns true if this friend is marked as snoozing + </summary> + </member> + <member name="M:Steamworks.Friend.InviteToGame(System.String)"> + <summary> + Invite this friend to the game that we are playing + </summary> + </member> + <member name="M:Steamworks.Friend.SendMessage(System.String)"> + <summary> + Sends a message to a Steam friend. Returns true if success + </summary> + </member> + <member name="M:Steamworks.Friend.RequestUserStatsAsync"> + <summary> + Tries to get download the latest user stats + </summary> + <returns>True if successful, False if failure</returns> + </member> + <member name="M:Steamworks.Friend.GetStatFloat(System.String,System.Single)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetStatInt(System.String,System.Int32)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievement(System.String,System.Boolean)"> + <summary> + Gets a user achievement state. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievementUnlockTime(System.String)"> + <summary> + Gets a the time this achievement was unlocked. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <returns>The time unlocked. If it wasn't unlocked, or you haven't downloaded the stats yet - will return DateTime.MinValue</returns> + </member> + <member name="P:Steamworks.InventoryDef.Name"> + <summary> + Shortcut to call GetProperty( "name" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Description"> + <summary> + Shortcut to call GetProperty( "description" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrl"> + <summary> + Shortcut to call GetProperty( "icon_url" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrlLarge"> + <summary> + Shortcut to call GetProperty( "icon_url_large" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.PriceCategory"> + <summary> + Shortcut to call GetProperty( "price_category" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Type"> + <summary> + Shortcut to call GetProperty( "type" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IsGenerator"> + <summary> + Returns true if this is an item that generates an item, rather + than something that is actual an item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.ExchangeSchema"> + <summary> + Shortcut to call GetProperty( "exchange" ) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipes"> + <summary> + Get a list of exchanges that are available to make this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Marketable"> + <summary> + Shortcut to call GetBoolProperty( "marketable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Tradable"> + <summary> + Shortcut to call GetBoolProperty( "tradable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Created"> + <summary> + Gets the property timestamp + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Modified"> + <summary> + Gets the property modified + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty(System.String)"> + <summary> + Get a specific property by name + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetBoolProperty(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty``1(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Properties"> + <summary> + Gets a list of all properties on this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalPrice"> + <summary> + Returns the price of this item in the local currency (SteamInventory.Currency) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalBasePrice"> + <summary> + If the price has been discounted, LocalPrice will differ from LocalBasePrice + (assumed, this isn't documented) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipesContainingThis"> + <summary> + Return a list of recepies that contain this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Properties"> + <summary> + Only available if the result set was created with the getproperties + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsNoTrade"> + <summary> + This item is account-locked and cannot be traded or given away. + This is an item status flag which is permanently attached to specific item instances + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsRemoved"> + <summary> + The item has been destroyed, traded away, expired, or otherwise invalidated. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsConsumed"> + <summary> + The item quantity has been decreased by 1 via ConsumeItem API. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="M:Steamworks.InventoryItem.ConsumeAsync(System.Int32)"> + <summary> + Consumes items from a user's inventory. If the quantity of the given item goes to zero, it is permanently removed. + Once an item is removed it cannot be recovered.This is not for the faint of heart - if your game implements item removal at all, + a high-friction UI confirmation process is highly recommended.ConsumeItem can be restricted to certain item definitions or fully + blocked via the Steamworks website to minimize support/abuse issues such as the classic "my brother borrowed my laptop and deleted all of my rare items". + </summary> + </member> + <member name="M:Steamworks.InventoryItem.SplitStackAsync(System.Int32)"> + <summary> + Split stack into two items + </summary> + </member> + <member name="M:Steamworks.InventoryItem.AddAsync(Steamworks.InventoryItem,System.Int32)"> + <summary> + Add x units of the target item to this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Acquired"> + <summary> + Will try to return the date that this item was aquired. You need to have for the items + with their properties for this to work. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Origin"> + <summary> + Tries to get the origin property. Need properties for this to work. + Will return a string like "market" + </summary> + </member> + <member name="T:Steamworks.InventoryItem.Amount"> + <summary> + Small utility class to describe an item with a quantity + </summary> + </member> + <member name="T:Steamworks.InventoryRecipe"> + <summary> + A structured description of an item exchange + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.DefinitionId"> + <summary> + The definition ID of the ingredient. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Definition"> + <summary> + If we don't know about this item definition this might be null. + In which case, DefinitionId should still hold the correct id. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Count"> + <summary> + The amount of this item needed. Generally this will be 1. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Result"> + <summary> + The item that this will create. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredients"> + <summary> + The items, with quantity required to create this item. + </summary> + </member> + <member name="M:Steamworks.InventoryResult.BelongsTo(Steamworks.SteamId)"> + <summary> + Checks whether an inventory result handle belongs to the specified Steam ID. + This is important when using Deserialize, to verify that a remote player is not pretending to have a different user's inventory + </summary> + </member> + <member name="M:Steamworks.InventoryResult.Serialize"> + <summary> + Serialized result sets contain a short signature which can't be forged or replayed across different game sessions. + A result set can be serialized on the local client, transmitted to other players via your game networking, and + deserialized by the remote players.This is a secure way of preventing hackers from lying about posessing + rare/high-value items. Serializes a result set with signature bytes to an output buffer.The size of a serialized + result depends on the number items which are being serialized.When securely transmitting items to other players, + it is recommended to use GetItemsByID first to create a minimal result set. + Results have a built-in timestamp which will be considered "expired" after an hour has elapsed.See DeserializeResult + for expiration handling. + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.Owner"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.MetaData"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.JoinAsync"> + <summary> + Will attempt to join the party. If successful will return a connection string. + If failed, will return null + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.OnReservationCompleted(Steamworks.SteamId)"> + <summary> + When a user follows your beacon, Steam will reserve one of the open party slots for them, and send your game a ReservationNotification callback. + When that user joins your party, call OnReservationCompleted to notify Steam that the user has joined successfully + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.CancelReservation(Steamworks.SteamId)"> + <summary> + To cancel a reservation (due to timeout or user input), call this. + Steam will open a new reservation slot. + Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.Destroy"> + <summary> + Turn off the beacon + </summary> + </member> + <member name="T:Steamworks.SteamServerInit"> + <summary> + Used to set up the server. + The variables in here are all required to be set, and can't be changed once the server is created. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.VersionString"> + <summary> + The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. + If you go into the dedicated server tab on steamworks you'll be able to server the latest version. If this version number is + less than that latest version then your server won't show. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.ModDir"> + <summary> + This should be the same directory game where gets installed into. Just the folder name, not the whole path. I.e. "Rust", "Garrysmod". + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.GameDescription"> + <summary> + The game description. Setting this to the full name of your game is recommended. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.DedicatedServer"> + <summary> + Is a dedicated server + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithRandomSteamPort"> + <summary> + Set the Steam quert port + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithQueryShareGamePort"> + <summary> + If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE into usQueryPort, then it causes the game server API to use + "GameSocketShare" mode, which means that the game is responsible for sending and receiving UDP packets for the master + server updater. + + More info about this here: https://partner.steamgames.com/doc/api/ISteamGameServer#HandleIncomingPacket + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewCommunityFile"> + <summary> + Create a Normal Workshop item that can be subscribed to + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewMicrotransactionFile"> + <summary> + Workshop item that is meant to be voted on for the purpose of selling in-game + </summary> + </member> + <member name="F:Steamworks.Ugc.PublishResult.NeedsWorkshopAgreement"> + <summary> + https://partner.steamgames.com/doc/features/workshop/implementation#Legal + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Id"> + <summary> + The actual ID of this file + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Title"> + <summary> + The given title of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Description"> + <summary> + The description of this item, in your local language if available + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Tags"> + <summary> + A list of tags for this item, all lowercase + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CreatorApp"> + <summary> + App Id of the app that created this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ConsumerApp"> + <summary> + App Id of the app that will consume this item. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Owner"> + <summary> + User who created this content + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Score"> + <summary> + The bayesian average for up votes / total votes, between [0,1] + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Created"> + <summary> + Time when the published item was created + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Updated"> + <summary> + Time when the published item was last updated + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPublic"> + <summary> + True if this is publically visible + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsFriendsOnly"> + <summary> + True if this item is only visible by friends of the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPrivate"> + <summary> + True if this is only visible to the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsBanned"> + <summary> + True if this item has been banned + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsAcceptedForUse"> + <summary> + Whether the developer of this app has specifically flagged this item as accepted in the Workshop + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesUp"> + <summary> + The number of upvotes of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesDown"> + <summary> + The number of downvotes of this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Download(System.Boolean)"> + <summary> + Start downloading this item. + If this returns false the item isn't getting downloaded. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesTotal"> + <summary> + If we're downloading, how big the total download is + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesDownloaded"> + <summary> + If we're downloading, how much we've downloaded + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.SizeBytes"> + <summary> + If we're installed, how big is the install + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadAmount"> + <summary> + If we're downloading our current progress as a delta betwen 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.HasTag(System.String)"> + <summary> + A case insensitive check for tag + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Subscribe"> + <summary> + Allows the user to subscribe to this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.DownloadAsync(System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Allows the user to subscribe to download this item asyncronously + If CancellationToken is default then there is 60 seconds timeout + Progress will be set to 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Unsubscribe"> + <summary> + Allows the user to unsubscribe from this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.AddFavorite"> + <summary> + Adds item to user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.RemoveFavorite"> + <summary> + Removes item from user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Vote(System.Boolean)"> + <summary> + Allows the user to rate a workshop item up or down. + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.GetUserVote"> + <summary> + Gets the current users vote on the item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Url"> + <summary> + Return a URL to view this item online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ChangelogUrl"> + <summary> + The URl to view this item's changelog + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CommentsUrl"> + <summary> + The URL to view the comments on this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DiscussUrl"> + <summary> + The URL to discuss this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.StatsUrl"> + <summary> + The URL to view this items stats online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.PreviewImageUrl"> + <summary> + The URL to the preview image for this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Edit"> + <summary> + Edit this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAnyTag"> + <summary> + Found items must have at least one of the defined tags + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAllTags"> + <summary> + Found items must have all defined tags + </summary> + </member> + <member name="P:Steamworks.Epoch.Current"> + <summary> + Returns the current Unix Epoch + </summary> + </member> + <member name="M:Steamworks.Epoch.ToDateTime(System.Decimal)"> + <summary> + Convert an epoch to a datetime + </summary> + </member> + <member name="M:Steamworks.Epoch.FromDateTime(System.DateTime)"> + <summary> + Convert a DateTime to a unix time + </summary> + </member> + <member name="M:Steamworks.Helpers.TakeBuffer(System.Int32)"> + <summary> + Returns a buffer. This will get returned and reused later on. + </summary> + </member> + <member name="T:Steamworks.PreserveAttribute"> + <summary> + Prevent unity from stripping shit we depend on + https://docs.unity3d.com/Manual/ManagedCodeStripping.html + </summary> + </member> + </members> +</doc> diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.xml.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.xml.meta new file mode 100644 index 0000000..bf80f5b --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/Facepunch.Steamworks.Win64.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ea452b431085aed499c01339e89fce8b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin.meta new file mode 100644 index 0000000..c544672 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9eb418beccc204946862a1a8f099ec39 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux32.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux32.meta new file mode 100644 index 0000000..de7c76e --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux32.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ce9561d2de976e74684ab44c5fec0813 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux32/libsteam_api.so b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux32/libsteam_api.so Binary files differnew file mode 100644 index 0000000..7c42e16 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux32/libsteam_api.so diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux32/libsteam_api.so.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux32/libsteam_api.so.meta new file mode 100644 index 0000000..7760b89 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux32/libsteam_api.so.meta @@ -0,0 +1,89 @@ +fileFormatVersion: 2 +guid: fd99b19e202e95a44ace17e10bac2feb +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 1 + Exclude Linux: 1 + Exclude Linux64: 1 + Exclude LinuxUniversal: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: LinuxUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux64.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux64.meta new file mode 100644 index 0000000..2c7346c --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux64.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2b478e6d3d1ef9848b43453c8e68cd0d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux64/libsteam_api.so b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux64/libsteam_api.so Binary files differnew file mode 100644 index 0000000..33762a7 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux64/libsteam_api.so diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux64/libsteam_api.so.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux64/libsteam_api.so.meta new file mode 100644 index 0000000..5b1fd9a --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/linux64/libsteam_api.so.meta @@ -0,0 +1,89 @@ +fileFormatVersion: 2 +guid: a3b75fd2a03fb3149b60c2040555c3fe +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 0 + Exclude Linux: 1 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 1 + Exclude Win: 0 + Exclude Win64: 0 + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: Linux + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/osx.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/osx.meta new file mode 100644 index 0000000..484b36e --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/osx.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 93319165ca0834f41b428adbdad19105 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/osx/libsteam_api.bundle b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/osx/libsteam_api.bundle Binary files differnew file mode 100644 index 0000000..97b6446 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/osx/libsteam_api.bundle diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/osx/libsteam_api.bundle.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/osx/libsteam_api.bundle.meta new file mode 100644 index 0000000..c0be5c9 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/osx/libsteam_api.bundle.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 7d6647fb9d80f5b4f9b2ff1378756bee +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/steam_api.dll b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/steam_api.dll Binary files differnew file mode 100644 index 0000000..6e0f440 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/steam_api.dll diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/steam_api.dll.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/steam_api.dll.meta new file mode 100644 index 0000000..eb3a7c4 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/steam_api.dll.meta @@ -0,0 +1,89 @@ +fileFormatVersion: 2 +guid: f47308500f9b7734392a75ff281c7457 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 0 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86 + DefaultValueInitialized: true + OS: Windows + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/steam_api.lib b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/steam_api.lib Binary files differnew file mode 100644 index 0000000..66182e3 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/steam_api.lib diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/steam_api.lib.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/steam_api.lib.meta new file mode 100644 index 0000000..d2fc3e8 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/steam_api.lib.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3ffd5813d91aefd459583d77d2e49ddd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64.meta new file mode 100644 index 0000000..b761a55 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4080c4017456bde44a6f4b5915b8d27c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64/steam_api64.dll b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64/steam_api64.dll Binary files differnew file mode 100644 index 0000000..ad13f2b --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64/steam_api64.dll diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64/steam_api64.dll.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64/steam_api64.dll.meta new file mode 100644 index 0000000..d371fcd --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64/steam_api64.dll.meta @@ -0,0 +1,89 @@ +fileFormatVersion: 2 +guid: cf5718c4ee1c31e458f8a58a77f4eef0 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 0 + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64/steam_api64.lib b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64/steam_api64.lib Binary files differnew file mode 100644 index 0000000..9be697b --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64/steam_api64.lib diff --git a/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64/steam_api64.lib.meta b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64/steam_api64.lib.meta new file mode 100644 index 0000000..235d424 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/Unity/redistributable_bin/win64/steam_api64.lib.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b7f47a56d1502a54aac85b9fadc6741e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Posix.dll b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Posix.dll Binary files differnew file mode 100644 index 0000000..6901913 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Posix.dll diff --git a/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Posix.pdb b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Posix.pdb Binary files differnew file mode 100644 index 0000000..4590cb5 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Posix.pdb diff --git a/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Posix.xml b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Posix.xml new file mode 100644 index 0000000..414ee29 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Posix.xml @@ -0,0 +1,3474 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Facepunch.Steamworks.Posix</name> + </assembly> + <members> + <member name="T:Steamworks.CallResult`1"> + <summary> + An awaitable version of a SteamAPICall_t + </summary> + </member> + <member name="M:Steamworks.CallResult`1.OnCompleted(System.Action)"> + <summary> + This gets called if IsComplete returned false on the first call. + The Action "continues" the async call. We pass it to the Dispatch + to be called when the callback returns. + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetResult"> + <summary> + Gets the result. This is called internally by the async shit. + </summary> + </member> + <member name="P:Steamworks.CallResult`1.IsCompleted"> + <summary> + Return true if complete or failed + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetAwaiter"> + <summary> + This is what makes this struct awaitable + </summary> + </member> + <member name="T:Steamworks.ICallbackData"> + <summary> + Gives us a generic way to get the CallbackId of structs + </summary> + </member> + <member name="M:Steamworks.AuthTicket.Cancel"> + <summary> + Cancels a ticket. + You should cancel your ticket when you close the game or leave a server. + </summary> + </member> + <member name="T:Steamworks.Dispatch"> + <summary> + Responsible for all callback/callresult handling + + This manually pumps Steam's message queue and dispatches those + events to any waiting callbacks/callresults. + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnDebugCallback"> + <summary> + If set then we'll call this function every time a callback is generated. + + This is SLOW!! - it's for debugging - don't keep it on all the time. If you want to access a specific + callback then please create an issue on github and I'll add it! + + Params are : [Callback Type] [Callback Contents] [server] + + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnException"> + <summary> + Called if an exception happens during a callback/callresult. + This is needed because the exception isn't always accessible when running + async.. and can fail silently. With this hooked you won't be stuck wondering + what happened. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Init"> + <summary> + This gets called from Client/Server Init + It's important to switch to the manual dispatcher + </summary> + </member> + <member name="F:Steamworks.Dispatch.runningFrame"> + <summary> + Make sure we don't call Frame in a callback - because that'll cause some issues for everyone. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Frame(Steamworks.Data.HSteamPipe)"> + <summary> + Calls RunFrame and processes events from this Steam Pipe + </summary> + </member> + <member name="F:Steamworks.Dispatch.actionsToCall"> + <summary> + To be safe we don't call the continuation functions while iterating + the Callback list. This is maybe overly safe because the only way this + could be an issue is if the callback list is modified in the continuation + which would only happen if starting or shutting down in the callback. + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessCallback(Steamworks.Dispatch.CallbackMsg_t,System.Boolean)"> + <summary> + A callback is a general global message + </summary> + </member> + <member name="M:Steamworks.Dispatch.CallbackToString(Steamworks.CallbackType,System.IntPtr,System.Int32)"> + <summary> + Given a callback, try to turn it into a string + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessResult(Steamworks.Dispatch.CallbackMsg_t)"> + <summary> + A result is a reply to a specific command + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopClientAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopServerAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.OnCallComplete``1(Steamworks.Data.SteamAPICall_t,System.Action,System.Boolean)"> + <summary> + Watch for a steam api call + </summary> + </member> + <member name="M:Steamworks.Dispatch.Install``1(System.Action{``0},System.Boolean)"> + <summary> + Install a global callback. The passed function will get called if it's all good. + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.Numeric"> + <summary> + The score is just a simple numerical value + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeSeconds"> + <summary> + The score represents a time, in seconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeMilliSeconds"> + <summary> + The score represents a time, in milliseconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Ascending"> + <summary> + The top-score is the lowest number + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Descending"> + <summary> + The top-score is the highest number + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Unreliable"> + <summary> + Send the message unreliably. Can be lost. Messages *can* be larger than a + single MTU (UDP packet), but there is no retransmission, so if any piece + of the message is lost, the entire message will be dropped. + + The sending API does have some knowledge of the underlying connection, so + if there is no NAT-traversal accomplished or there is a recognized adjustment + happening on the connection, the packet will be batched until the connection + is open again. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoNagle"> + <summary> + Disable Nagle's algorithm. + By default, Nagle's algorithm is applied to all outbound messages. This means + that the message will NOT be sent immediately, in case further messages are + sent soon after you send this, which can be grouped together. Any time there + is enough buffered data to fill a packet, the packets will be pushed out immediately, + but partially-full packets not be sent until the Nagle timer expires. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoDelay"> + <summary> + If the message cannot be sent very soon (because the connection is still doing some initial + handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable + messages. Using this flag on reliable messages is invalid. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Reliable"> + Reliable message send. Can send up to 0.5mb in a single message. + Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for + efficient sends of large chunks of data. + </member> + <member name="P:Steamworks.Data.NetIdentity.LocalHost"> + <summary> + Return a NetIdentity that represents LocalHost + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.IsLocalHost"> + <summary> + Return true if this identity is localhost + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.SteamId)~Steamworks.Data.NetIdentity"> + <summary> + Convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetAddress)~Steamworks.Data.NetIdentity"> + <summary> + Set the specified Address + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetIdentity)~Steamworks.SteamId"> + <summary> + Automatically convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="P:Steamworks.Data.NetIdentity.SteamId"> + <summary> + Returns NULL if we're not a SteamId + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.Address"> + <summary> + Returns NULL if we're not a NetAddress + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.ToString"> + <summary> + We override tostring to provide a sensible representation + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Port"> + <summary> + The Port. This is redundant documentation. + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.AnyIp(System.UInt16)"> + <summary> + Any IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.LocalHost(System.UInt16)"> + <summary> + Localhost IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.String,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.Net.IPAddress,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Cleared"> + <summary> + Set everything to zero + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv6AllZeros"> + <summary> + Return true if the IP is ::0. (Doesn't check port.) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv4"> + <summary> + Return true if IP is mapped IPv4 + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsLocalHost"> + <summary> + Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Address"> + <summary> + Get the Address section + </summary> + </member> + <member name="T:Steamworks.Data.Connection"> + <summary> + Used as a base to create your client connection. This creates a socket + to a single connection. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Accept"> + <summary> + Accept an incoming connection that has been received on a listen socket. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Close(System.Boolean,System.Int32,System.String)"> + <summary> + Disconnects from the remote host and invalidates the connection handle. Any unread data on the connection is discarded.. + reasonCode is defined and used by you. + </summary> + </member> + <member name="P:Steamworks.Data.Connection.UserData"> + <summary> + Get/Set connection user data + </summary> + </member> + <member name="P:Steamworks.Data.Connection.ConnectionName"> + <summary> + A name for the connection, used mostly for debugging + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.IntPtr,System.Int32,Steamworks.Data.SendType)"> + <summary> + This is the best version to use. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],System.Int32,System.Int32,Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.String,Steamworks.Data.SendType)"> + <summary> + This creates a ton of garbage - so don't do anything with this beyond testing! + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Flush"> + <summary> + Flush any messages waiting on the Nagle timer and send them at the next transmission + opportunity (often that means right now). + </summary> + </member> + <member name="M:Steamworks.Data.Connection.DetailedStatus"> + <summary> + Returns detailed connection stats in text format. Useful + for dumping to a log, etc. + </summary> + <returns>Plain text connection info</returns> + </member> + <member name="T:Steamworks.Data.ConnectionInfo"> + <summary> + Describe the state of a connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.State"> + <summary> + High level state of the connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Address"> + <summary> + Remote address. Might be all 0's if we don't know it, or if this is N/A. + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Identity"> + <summary> + Who is on the other end? Depending on the connection type and phase of the connection, we might not know + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.EndReason"> + <summary> + Basic cause of the connection termination or problem. + </summary> + </member> + <member name="T:Steamworks.Data.NetPingLocation"> + <summary> + + Object that describes a "location" on the Internet with sufficient + detail that we can reasonably estimate an upper bound on the ping between + the two hosts, even if a direct route between the hosts is not possible, + and the connection must be routed through the Steam Datagram Relay network. + This does not contain any information that identifies the host. Indeed, + if two hosts are in the same building or otherwise have nearly identical + networking characteristics, then it's valid to use the same location + object for both of them. + + NOTE: This object should only be used in the same process! Do not serialize it, + send it over the wire, or persist it in a file or database! If you need + to do that, convert it to a string representation using the methods in + ISteamNetworkingUtils(). + + </summary> + </member> + <member name="M:Steamworks.Data.NetPingLocation.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + Estimate the round-trip latency between two arbitrary locations, in + milliseconds. This is a conservative estimate, based on routing through + the relay network. For most basic relayed connections, this ping time + will be pretty accurate, since it will be based on the route likely to + be actually used. + + If a direct IP route is used (perhaps via NAT traversal), then the route + will be different, and the ping time might be better. Or it might actually + be a bit worse! Standard IP routing is frequently suboptimal! + + But even in this case, the estimate obtained using this method is a + reasonable upper bound on the ping time. (Also it has the advantage + of returning immediately and not sending any packets.) + + In a few cases we might not able to estimate the route. In this case + a negative value is returned. k_nSteamNetworkingPing_Failed means + the reason was because of some networking difficulty. (Failure to + ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + currently answer the question for some other reason. + + Do you need to be able to do this from a backend/matchmaking server? + You are looking for the "ticketgen" library. + </member> + <member name="M:Steamworks.Data.Socket.Close"> + <summary> + Destroy a listen socket. All the connections that were accepting on the listen + socket are closed ungracefully. + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.State"> + <summary> + True if unlocked + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.UnlockTime"> + <summary> + Should hold the unlock time if State is true + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIcon"> + <summary> + Gets the icon of the achievement. This can return a null image even though the image exists if the image + hasn't been downloaded by Steam yet. You can use GetIconAsync if you want to wait for the image to be downloaded. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIconAsync(System.Int32)"> + <summary> + Gets the icon of the achievement, waits for it to load if we have to + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.GlobalUnlocked"> + <summary> + Returns the fraction (0-1) of users who have unlocked the specified achievement, or -1 if no data available. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Trigger(System.Boolean)"> + <summary> + Make this achievement earned + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Clear"> + <summary> + Reset this achievement to not achieved + </summary> + </member> + <member name="T:Steamworks.Data.DurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Appid"> + <summary> + appid generating playtime + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Applicable"> + <summary> + is duration control applicable to user + game combination + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeInLastFiveHours"> + <summary> + playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeToday"> + <summary> + playtime on current calendar day + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Progress"> + <summary> + recommended progress + </summary> + </member> + <member name="P:Steamworks.Data.Leaderboard.Name"> + <summary> + the name of a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.ReplaceScore(System.Int32,System.Int32[])"> + <summary> + Submit your score and replace your old score even if it was better + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.SubmitScoreAsync(System.Int32,System.Int32[])"> + <summary> + Submit your new score, but won't replace your high score if it's lower + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.AttachUgc(Steamworks.Data.Ugc)"> + <summary> + Attaches a piece of user generated content the user's entry on a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAsync(System.Int32,System.Int32)"> + <summary> + Used to query for a sequential range of leaderboard entries by leaderboard Sort. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAroundUserAsync(System.Int32,System.Int32)"> + <summary> + Used to retrieve leaderboard entries relative a user's entry. If there are not enough entries in the leaderboard + before or after the user's entry, Steam will adjust the range to try to return the number of entries requested. + For example, if the user is #1 on the leaderboard and start is set to -2, end is set to 2, Steam will return the first + 5 entries in the leaderboard. If The current user has no entry, this will return null. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresFromFriendsAsync"> + <summary> + Used to retrieve all leaderboard entries for friends of the current user + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Join"> + <summary> + Try to join this room. Will return RoomEnter.Success on success, + and anything else is a failure + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Leave"> + <summary> + Leave a lobby; this will take effect immediately on the client side + other users in the lobby will be notified by a LobbyChatUpdate_t callback + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.InviteFriend(Steamworks.SteamId)"> + <summary> + Invite another user to the lobby + will return true if the invite is successfully sent, whether or not the target responds + returns false if the local user is not connected to the Steam servers + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MemberCount"> + <summary> + returns the number of users in the specified lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Members"> + <summary> + Returns current members. Need to be in the lobby to see the users. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetData(System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetData(System.String,System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.DeleteData(System.String)"> + <summary> + Removes a metadata key from the lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Data"> + <summary> + Get all data for this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetMemberData(Steamworks.Friend,System.String)"> + <summary> + Gets per-user metadata for someone in this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetMemberData(System.String,System.String)"> + <summary> + Sets per-user metadata (for the local user implicitly) + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatString(System.String)"> + <summary> + Sends a string to the chat room + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatBytes(System.Byte[])"> + <summary> + Sends bytes the the chat room + this isn't exposed because there's no way to read raw bytes atm, + and I figure people can send json if they want something more advanced + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Refresh"> + <summary> + Refreshes metadata for a lobby you're not necessarily in right now + you never do this for lobbies you're a member of, only if your + this will send down all the metadata associated with a lobby + this is an asynchronous call + returns false if the local user is not connected to the Steam servers + results will be returned by a LobbyDataUpdate_t callback + if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MaxMembers"> + <summary> + Max members able to join this lobby. Cannot be over 250. + Can only be set by the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(Steamworks.SteamId)"> + <summary> + [SteamID variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(System.String,System.UInt16)"> + <summary> + [IP/Port variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetGameServer(System.UInt32@,System.UInt16@,Steamworks.SteamId@)"> + <summary> + Gets the details of the lobby's game server, if set. Returns true if the lobby is + valid and has a server set, otherwise returns false. + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Owner"> + <summary> + You must be the lobby owner to set the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.IsOwnedBy(Steamworks.SteamId)"> + <summary> + Check if the specified SteamId owns the lobby + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceClose"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceFar"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceWorldwide"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithKeyValue(System.String,System.String)"> + <summary> + Filter by specified key/value pair; string parameters + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithLower(System.String,System.Int32)"> + <summary> + Numerical filter where value is less than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithHigher(System.String,System.Int32)"> + <summary> + Numerical filter where value is greater than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must be equal to the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithNotEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must not equal the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.AddNumericalFilter(System.String,System.Int32,Steamworks.LobbyComparison)"> + <summary> + Test key, initialize numerical filter list if necessary, then add new numerical filter + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.OrderByNear(System.String,System.Int32)"> + <summary> + Order filtered results according to key/values nearest the provided key/value pair. + Can specify multiple near value filters; each successive filter is lower priority than the previous. + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithSlotsAvailable(System.Int32)"> + <summary> + returns only lobbies with the specified number of slots available + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithMaxResults(System.Int32)"> + <summary> + sets how many results to return, the lower the count the faster it is to download the lobby results + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.RequestAsync"> + <summary> + Run the query, get the matching lobbies + </summary> + </member> + <member name="T:Steamworks.Data.OutgoingPacket"> + <summary> + A server query packet. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Address"> + <summary> + Target IP address + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Port"> + <summary> + Target port + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Data"> + <summary> + This data is pooled. Make a copy if you don't use it immediately. + This buffer is also quite large - so pay attention to Size. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Size"> + <summary> + Size of the data + </summary> + </member> + <member name="T:Steamworks.Data.RemotePlaySession"> + <summary> + Represents a RemotePlaySession from the SteamRemotePlay interface + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.IsValid"> + <summary> + Returns true if this session was valid when created. This will stay true even + after disconnection - so be sure to watch SteamRemotePlay.OnSessionDisconnected + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.SteamId"> + <summary> + Get the SteamID of the connected user + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.ClientName"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.FormFactor"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagUser(Steamworks.SteamId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.SetLocation(System.String)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagPublishedFile(Steamworks.Data.PublishedFileId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="P:Steamworks.Data.ServerInfo.Tags"> + <summary> + Gets the individual tags for this server + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToHistory"> + <summary> + Add this server to our history list + If we're already in the history list, weill set the last played time to now + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.QueryRulesAsync"> + <summary> + If this server responds to source engine style queries, we'll be able to get a list of rules here + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromHistory"> + <summary> + Remove this server from our history list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToFavourites"> + <summary> + Add this server to our favourite list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromFavourites"> + <summary> + Remove this server from our favourite list + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultStatus(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Find out the status of an asynchronous inventory result handle. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultItems(Steamworks.Data.SteamInventoryResult_t,Steamworks.Data.SteamItemDetails_t[],System.UInt32@)"> + <summary> + Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultTimestamp(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.CheckResultSteamID(Steamworks.Data.SteamInventoryResult_t,Steamworks.SteamId)"> + <summary> + Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.DestroyResult(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Destroys a result handle and frees all associated memory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetAllItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + Captures the entire state of the current users Steam inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetItemsByID(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId@,System.UInt32)"> + <summary> + Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GrantPromoItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only). + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.ConsumeItem(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId,System.UInt32)"> + <summary> + ConsumeItem() removes items from the inventory permanently. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.SendItemDropHeartbeat"> + <summary> + Deprecated method. Playtime accounting is performed on the Steam servers. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.TriggerItemDrop(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryDefId)"> + <summary> + Playtime credit must be consumed and turned into item drops by your game. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.LoadItemDefinitions"> + <summary> + LoadItemDefinitions triggers the automatic load and refresh of item definitions. + </summary> + </member> + <member name="M:Steamworks.ISteamUserStats.DownloadLeaderboardEntriesForUsers(Steamworks.Data.SteamLeaderboard_t,Steamworks.SteamId[],System.Int32)"> + <summary> + Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.Interface"> + <summary> + An optional interface to use instead of deriving + </summary> + </member> + <member name="F:Steamworks.ConnectionManager.Connection"> + <summary> + The actual connection we're managing + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.ConnectionInfo"> + <summary> + The last received ConnectionInfo + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We're trying to connect! + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We started connecting to this guy + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + We got disconnected + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnMessage(System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Must call Accept or Close on the connection within a second or so + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection leaves + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnMessage(Steamworks.Data.Connection,Steamworks.Data.NetIdentity,System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message from a connection + </summary> + </member> + <member name="T:Steamworks.SocketManager"> + <summary> + Used as a base to create your networking server. This creates a socket + and listens/communicates with multiple queries. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Default behaviour is to accept every connection + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="P:Steamworks.ServerList.Base.AppId"> + <summary> + Which app we're querying. Defaults to the current app. + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnChanges"> + <summary> + When a new server is added, this function will get called + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnResponsiveServer"> + <summary> + Called for every responsive server + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Responsive"> + <summary> + A list of servers that responded. If you're only interested in servers that responded since you + last updated, then simply clear this list. + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Unresponsive"> + <summary> + A list of servers that were in the master list but didn't respond. + </summary> + </member> + <member name="M:Steamworks.ServerList.Base.RunQueryAsync(System.Single)"> + <summary> + Query the server list. Task result will be true when finished + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamApps"> + <summary> + Exposes a wide range of information and actions for applications and Downloadable Content (DLC). + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnDlcInstalled"> + <summary> + posted after the user gains ownership of DLC and that DLC is installed + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnNewLaunchParameters"> + <summary> + posted after the user gains executes a Steam URL with command line or query parameters + such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc + while the game is already running. The new params can be queried + with GetLaunchQueryParam and GetLaunchCommandLine + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribed"> + <summary> + Checks if the active user is subscribed to the current App ID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFamilySharing"> + <summary> + Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsLowVoilence"> + <summary> + Checks if the license owned by the user provides low violence depots. + Low violence depots are useful for copies sold in countries that have content restrictions + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsCybercafe"> + <summary> + Checks whether the current App ID license is for Cyber Cafes. + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsVACBanned"> + <summary> + CChecks if the user has a VAC ban on their account + </summary> + </member> + <member name="P:Steamworks.SteamApps.GameLanguage"> + <summary> + Gets the current language that the user has set. + This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AvailableLanguages"> + <summary> + Gets a list of the languages the current app supports. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsSubscribedToApp(Steamworks.AppId)"> + <summary> + Checks if the active user is subscribed to a specified AppId. + Only use this if you need to check ownership of another game related to yours, a demo for example. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsDlcInstalled(Steamworks.AppId)"> + <summary> + Checks if the user owns a specific DLC and if the DLC is installed + </summary> + </member> + <member name="M:Steamworks.SteamApps.PurchaseTime(Steamworks.AppId)"> + <summary> + Returns the time of the purchase of the app + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFreeWeekend"> + <summary> + Checks if the user is subscribed to the current app through a free weekend + This function will return false for users who have a retail or other type of license + Before using, please ask your Valve technical contact how to package and secure your free weekened + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcInformation"> + <summary> + Returns metadata for all available DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.UninstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="P:Steamworks.SteamApps.CurrentBetaName"> + <summary> + Returns null if we're not on a beta branch, else the name of the branch + </summary> + </member> + <member name="M:Steamworks.SteamApps.MarkContentCorrupt(System.Boolean)"> + <summary> + Allows you to force verify game content on next launch. + + If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), + you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit. + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstalledDepots(Steamworks.AppId)"> + <summary> + Gets a list of all installed depots for a given App ID in mount order + </summary> + </member> + <member name="M:Steamworks.SteamApps.AppInstallDir(Steamworks.AppId)"> + <summary> + Gets the install folder for a specific AppID. + This works even if the application is not installed, based on where the game would be installed with the default Steam library location. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsAppInstalled(Steamworks.AppId)"> + <summary> + The app may not actually be owned by the current user, they may have it left over from a free weekend, etc. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AppOwner"> + <summary> + Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed.. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetLaunchParam(System.String)"> + <summary> + Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. + Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. + Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + but it is advised that you not param names beginning with an underscore for your own features. + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcDownloadProgress(Steamworks.AppId)"> + <summary> + Gets the download progress for optional DLC. + </summary> + </member> + <member name="P:Steamworks.SteamApps.BuildId"> + <summary> + Gets the buildid of this app, may change at any time based on backend updates to the game. + Defaults to 0 if you're not running a build downloaded from steam. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetFileDetailsAsync(System.String)"> + <summary> + Asynchronously retrieves metadata details about a specific file in the depot manifest. + Currently provides: + </summary> + </member> + <member name="P:Steamworks.SteamApps.CommandLine"> + <summary> + Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. + This method of passing a connect string (used when joining via rich presence, accepting an + invite, etc) is preferable to passing the connect string on the operating system command + line, which is a security risk. In order for rich presence joins to go through this + path and not be placed on the OS command line, you must set a value in your app's + configuration on Steam. Ask Valve for help with this. + </summary> + </member> + <member name="M:Steamworks.SteamClient.Init(System.UInt32,System.Boolean)"> + <summary> + Initialize the steam client. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="P:Steamworks.SteamClient.IsLoggedOn"> + <summary> + Checks if the current user's Steam client is connected to the Steam servers. + If it's not then no real-time services provided by the Steamworks API will be enabled. The Steam + client will automatically be trying to recreate the connection as often as possible. When the + connection is restored a SteamServersConnected_t callback will be posted. + You usually don't need to check for this yourself. All of the API calls that rely on this will + check internally. Forcefully disabling stuff when the player loses access is usually not a + very good experience for the player and you could be preventing them from accessing APIs that do not + need a live connection to Steam. + </summary> + </member> + <member name="P:Steamworks.SteamClient.SteamId"> + <summary> + Gets the Steam ID of the account currently logged into the Steam client. This is + commonly called the 'current user', or 'local user'. + A Steam ID is a unique identifier for a Steam accounts, Steam groups, Lobbies and Chat + rooms, and used to differentiate users in all parts of the Steamworks API. + </summary> + </member> + <member name="P:Steamworks.SteamClient.Name"> + <summary> + returns the local players name - guaranteed to not be NULL. + this is the same name as on the users community profile page + </summary> + </member> + <member name="P:Steamworks.SteamClient.State"> + <summary> + gets the status of the current user + </summary> + </member> + <member name="P:Steamworks.SteamClient.AppId"> + <summary> + returns the appID of the current process + </summary> + </member> + <member name="M:Steamworks.SteamClient.RestartAppIfNecessary(System.UInt32)"> + <summary> + Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't + this returns true then it starts the Steam client if required and launches your game again through it, + and you should quit your process as soon as possible. This effectively runs steam://run/AppId so it + may not relaunch the exact executable that called it, as it will always relaunch from the version + installed in your Steam library folder/ + Note that during development, when not launching via Steam, this might always return true. + </summary> + </member> + <member name="M:Steamworks.SteamClient.ValidCheck"> + <summary> + Called in interfaces that rely on this being initialized + </summary> + </member> + <member name="T:Steamworks.SteamFriends"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnChatMessage"> + <summary> + Called when chat message has been received from a friend. You'll need to turn on + ListenForFriendsMessages to recieve this. (friend, msgtype, message) + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnPersonaStateChange"> + <summary> + called when a friends' status changes + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameRichPresenceJoinRequested"> + <summary> + Called when the user tries to join a game from their friends list + rich presence will have been set with the "connect" key which is set here + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameOverlayActivated"> + <summary> + Posted when game overlay activates or deactivates + the game can use this to be pause or resume single player games + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameServerChangeRequested"> + <summary> + Called when the user tries to join a different game server from their friends list + game client should attempt to connect to specified server when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameLobbyJoinRequested"> + <summary> + Called when the user tries to join a lobby from their friends list + game client should attempt to connect to specified lobby when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnFriendRichPresenceUpdate"> + <summary> + Callback indicating updated data about friends rich presence information + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenOverlay(System.String)"> + <summary> + The dialog to open. Valid options are: + "friends", + "community", + "players", + "settings", + "officialgamegroup", + "stats", + "achievements". + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenUserOverlay(Steamworks.SteamId,System.String)"> + <summary> + "steamid" - Opens the overlay web browser to the specified user or groups profile. + "chat" - Opens a chat window to the specified user, or joins the group chat. + "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API. + "stats" - Opens the overlay web browser to the specified user's stats. + "achievements" - Opens the overlay web browser to the specified user's achievements. + "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend. + "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend. + "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite. + "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenStoreOverlay(Steamworks.AppId)"> + <summary> + Activates the Steam Overlay to the Steam store page for the provided app. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenWebOverlay(System.String,System.Boolean)"> + <summary> + Activates Steam Overlay web browser directly to the specified URL. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenGameInviteOverlay(Steamworks.SteamId)"> + <summary> + Activates the Steam Overlay to open the invite dialog. Invitations sent from this dialog will be for the provided lobby. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetPlayedWith(Steamworks.SteamId)"> + <summary> + Mark a target user as 'played with'. + NOTE: The current user must be in game with the other player for the association to work. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.RequestUserInformation(Steamworks.SteamId,System.Boolean)"> + <summary> + Requests the persona name and optionally the avatar of a specified user. + NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them. + returns true if we're fetching the data, false if we already have it + </summary> + </member> + <member name="M:Steamworks.SteamFriends.GetRichPresence(System.String)"> + <summary> + Find a rich presence value by key for current user. Will be null if not found. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetRichPresence(System.String,System.String)"> + <summary> + Sets a rich presence value by key for current user. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.ClearRichPresence"> + <summary> + Clears all of the current user's rich presence data. + </summary> + </member> + <member name="P:Steamworks.SteamFriends.ListenForFriendsMessages"> + <summary> + Listens for Steam friends chat messages. + You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. + After enabling this you will receive callbacks when ever the user receives a chat message. + </summary> + </member> + <member name="M:Steamworks.SteamInput.RunFrame"> + <summary> + You shouldn't really need to call this because it get called by RunCallbacks on SteamClient + but Valve think it might be a nice idea if you call it right before you get input info - + just to make sure the info you're getting is 100% up to date. + </summary> + </member> + <member name="P:Steamworks.SteamInput.Controllers"> + <summary> + Return a list of connected controllers. + </summary> + </member> + <member name="M:Steamworks.SteamInput.GetDigitalActionGlyph(Steamworks.Controller,System.String)"> + <summary> + Return an absolute path to the PNG image glyph for the provided digital action name. The current + action set in use for the controller will be used for the lookup. You should cache the result and + maintain your own list of loaded PNG assets. + </summary> + <param name="controller"></param> + <param name="action"></param> + <returns></returns> + </member> + <member name="T:Steamworks.SteamInventory"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamInventory.LoadItemDefinitions"> + <summary> + Call this if you're going to want to access definition information. You should be able to get + away with calling this once at the start if your game, assuming your items don't change all the time. + This will trigger OnDefinitionsUpdated at which point Definitions should be set. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.WaitForDefinitions(System.Single)"> + <summary> + Will call LoadItemDefinitions and wait until Definitions is not null + </summary> + </member> + <member name="M:Steamworks.SteamInventory.FindDefinition(Steamworks.Data.InventoryDefId)"> + <summary> + Try to find the definition that matches this definition ID. + Uses a dictionary so should be about as fast as possible. + </summary> + </member> + <member name="P:Steamworks.SteamInventory.Items"> + <summary> + We will try to keep this list of your items automatically up to date. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItems"> + <summary> + Update the list of Items[] + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItemsAsync"> + <summary> + Get all items and return the InventoryResult + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GenerateItemAsync(Steamworks.InventoryDef,System.Int32)"> + <summary> + This is used to grant a specific item to the user. This should + only be used for development prototyping, from a trusted server, + or if you don't care about hacked clients granting arbitrary items. + This call can be disabled by a setting on Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem.Amount[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.DeserializeAsync(System.Byte[],System.Int32)"> + <summary> + Deserializes a result set and verifies the signature bytes. + This call has a potential soft-failure mode where the Result is expired, it will + still succeed in this mode.The "expired" + result could indicate that the data may be out of date - not just due to timed + expiration( one hour ), but also because one of the items in the result set may + have been traded or consumed since the result set was generated.You could compare + the timestamp from GetResultTimestamp to ISteamUtils::GetServerRealTime to determine + how old the data is. You could simply ignore the "expired" result code and + continue as normal, or you could request the player with expired data to send + an updated result set. + You should call CheckResultSteamID on the result handle when it completes to verify + that a remote player is not pretending to have a different user's inventory. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GrantPromoItemsAsync"> + <summary> + Grant all promotional items the user is eligible for + </summary> + </member> + <member name="M:Steamworks.SteamInventory.TriggerItemDropAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger an item drop for this user. This is for timed drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.AddPromoItemAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger a promo item drop. You can call this at startup, it won't + give users multiple promo drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.StartPurchaseAsync(Steamworks.InventoryDef[])"> + <summary> + Start buying a cart load of items. This will return a positive result is the purchase has + begun. You should listen out for SteamUser.OnMicroTxnAuthorizationResponse for a success. + </summary> + </member> + <member name="T:Steamworks.SteamMatchmaking"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="P:Steamworks.SteamMatchmaking.MaxLobbyKeyLength"> + <summary> + Maximum number of characters a lobby metadata key can be + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyInvite"> + <summary> + Someone invited you to a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyEntered"> + <summary> + You joined a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyCreated"> + <summary> + You created a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyGameCreated"> + <summary> + A game server has been associated with the lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyDataChanged"> + <summary> + The lobby metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDataChanged"> + <summary> + The lobby member metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberJoined"> + <summary> + The lobby member joined + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberLeave"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDisconnected"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberKicked"> + <summary> + The lobby member was kicked. The 3rd param is the user that kicked them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberBanned"> + <summary> + The lobby member was banned. The 3rd param is the user that banned them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnChatMessage"> + <summary> + A chat message was recieved from a member of a lobby + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.CreateLobbyAsync(System.Int32)"> + <summary> + Creates a new invisible lobby. Call lobby.SetPublic to take it online. + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.JoinLobbyAsync(Steamworks.SteamId)"> + <summmary> + Attempts to directly join the specified lobby + </summmary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetFavoriteServers"> + <summary> + Get a list of servers that are on your favorites list + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetHistoryServers"> + <summary> + Get a list of servers that you have added to your play history + </summary> + </member> + <member name="T:Steamworks.SteamMatchmakingServers"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="T:Steamworks.SteamMusic"> + <summary> + Functions to control music playback in the steam client. + This gives games the opportunity to do things like pause the music or lower the volume, + when an important cut scene is shown, and start playing afterwards. + Nothing uses Steam Music though so this can probably get fucked + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnPlaybackChanged"> + <summary> + Playback status changed + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnVolumeChanged"> + <summary> + Volume changed, parameter is new volume + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsEnabled"> + <summary> + Checks if Steam Music is enabled + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsPlaying"> + <summary> + true if a song is currently playing, paused, or queued up to play; otherwise false. + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Status"> + <summary> + Gets the current status of the Steam Music player + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayPrevious"> + <summary> + Have the Steam Music player play the previous song. + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayNext"> + <summary> + Have the Steam Music player skip to the next song + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Volume"> + <summary> + Gets/Sets the current volume of the Steam Music player + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PSessionRequest"> + <summary> + This SteamId wants to send you a message. You should respond by calling AcceptP2PSessionWithUser + if you want to recieve their messages + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PConnectionFailed"> + <summary> + Called when packets can't get through to the specified user. + All queued packets unsent at this point will be dropped, further attempts + to send will retry making the connection (but will be dropped if we fail again). + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AcceptP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called in response to a OnP2PSessionRequest + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AllowP2PPacketRelay(System.Boolean)"> + <summary> + Allow or disallow P2P connects to fall back on Steam server relay if direct + connection or NAT traversal can't be established. Applies to connections + created after setting or old connections that need to reconnect. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.CloseP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called when you're done communicating with a user, as this will + free up all of the resources allocated for the connection under-the-hood. + If the remote user tries to send data to you again, a new OnP2PSessionRequest + callback will be posted + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.IsP2PPacketAvailable(System.Int32)"> + <summary> + Checks if a P2P packet is available to read, and gets the size of the message if there is one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte[],System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte*,System.UInt32,System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte[],System.Int32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte*,System.UInt32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket``1(Steamworks.Data.NetAddress)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6) + + To use this derive a class from SocketManager and override as much as you want. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket(Steamworks.Data.NetAddress,Steamworks.ISocketManager)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6). + + To use this you should pass a class that inherits ISocketManager. You can use + SocketManager to get connections and send messages, but the ISocketManager class + will received all the appropriate callbacks. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal``1(Steamworks.Data.NetAddress)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal(Steamworks.Data.NetAddress,Steamworks.IConnectionManager)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateRelaySocket``1(System.Int32)"> + <summary> + Creates a server that will be relayed via Valve's network (hiding the IP and improving ping) + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectRelay``1(Steamworks.SteamId,System.Int32)"> + <summary> + Connect to a relay server + </summary> + </member> + <member name="T:Steamworks.SteamNetworkingUtils"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamNetworkingUtils.OnDebugOutput"> + <summary> + A function to receive debug network information on. This will do nothing + unless you set DebugLevel to something other than None. + + You should set this to an appropriate level instead of setting it to the highest + and then filtering it by hand because a lot of energy is used by creating the strings + and your frame rate will tank and you won't know why. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Status"> + <summary> + The latest available status gathered from the SteamRelayNetworkStatus callback + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.InitRelayNetworkAccess"> + <summary> + If you know that you are going to be using the relay network (for example, + because you anticipate making P2P connections), call this to initialize the + relay network. If you do not call this, the initialization will + be delayed until the first time you use a feature that requires access + to the relay network, which will delay that first access. + + You can also call this to force a retry if the previous attempt has failed. + Performing any action that requires access to the relay network will also + trigger a retry, and so calling this function is never strictly necessary, + but it can be useful to call it a program launch time, if access to the + relay network is anticipated. + + Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + callbacks to know when initialization has completed. + Typically initialization completes in a few seconds. + + Note: dedicated servers hosted in known data centers do *not* need + to call this, since they do not make routing decisions. However, if + the dedicated server will be using P2P functionality, it will act as + a "client" and this should be called. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.LocalPingLocation"> + <summary> + Return location info for the current host. + + It takes a few seconds to initialize access to the relay network. If + you call this very soon after startup the data may not be available yet. + + This always return the most up-to-date information we have available + right now, even if we are in the middle of re-calculating ping times. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + <summary> + Same as PingLocation.EstimatePingTo, but assumes that one location is the local host. + This is a bit faster, especially if you need to calculate a bunch of + these in a loop to find the fastest one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.WaitForPingDataAsync(System.Single)"> + <summary> + If you need ping information straight away, wait on this. It will return + immediately if you already have up to date ping data + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.ConnectionTimeout"> + <summary> + Timeout value (in ms) to use when first connecting + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Timeout"> + <summary> + Timeout value (in ms) to use after connection is established + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.SendBufferSize"> + <summary> + Upper limit of buffered pending bytes to be sent. + If this is reached SendMessage will return LimitExceeded. + Default is 524288 bytes (512k) + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.DebugLevel"> + <summary> + Get Debug Information via OnDebugOutput event + + Except when debugging, you should only use NetDebugOutput.Msg + or NetDebugOutput.Warning. For best performance, do NOT + request a high detail level and then filter out messages in the callback. + + This incurs all of the expense of formatting the messages, which are then discarded. + Setting a high priority value (low numeric value) here allows the library to avoid + doing this work. + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugLevel"> + <summary> + So we can remember and provide a Get for DebugLEvel + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugFunc"> + <summary> + We need to keep the delegate around until it's not used anymore + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OnDebugMessage(Steamworks.NetDebugOutput,System.IntPtr)"> + <summary> + This can be called from other threads - so we're going to queue these up and process them in a safe place. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OutputDebugMessages"> + <summary> + Called regularly from the Dispatch loop so we can provide a timely + stream of messages. + </summary> + </member> + <member name="T:Steamworks.SteamParental"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamParental.OnSettingsChanged"> + <summary> + Parental Settings Changed + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockEnabled"> + <summary> + + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockLocked"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsAppBlocked(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsAppInBlockList(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsFeatureBlocked(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsFeatureInBlockList(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="T:Steamworks.SteamParties"> + <summary> + This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. + Tell Steam the number of player spots that are available for your party, and a join-game string, and it + will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. + Adjust the number of open slots if other players join through alternate matchmaking methods. + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnBeaconLocationsUpdated"> + <summary> + The list of possible Party beacon locations has changed + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnActiveBeaconsUpdated"> + <summary> + The list of active beacons may have changed + </summary> + </member> + <member name="T:Steamworks.SteamRemotePlay"> + <summary> + Functions that provide information about Steam Remote Play sessions, streaming your game content to another computer or to a Steam Link app or hardware. + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionConnected"> + <summary> + Called when a session is connected + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionDisconnected"> + <summary> + Called when a session becomes disconnected + </summary> + </member> + <member name="P:Steamworks.SteamRemotePlay.SessionCount"> + <summary> + Get the number of currently connected Steam Remote Play sessions + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.GetSession(System.Int32)"> + <summary> + Get the currently connected Steam Remote Play session ID at the specified index. + IsValid will return false if it's out of bounds + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.SendInvite(Steamworks.SteamId)"> + <summary> + Invite a friend to Remote Play Together + This returns false if the invite can't be sent + </summary> + </member> + <member name="T:Steamworks.SteamRemoteStorage"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileWrite(System.String,System.Byte[])"> + <summary> + Creates a new file, writes the bytes to the file, and then closes the file. + If the target file already exists, it is overwritten + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileRead(System.String)"> + <summary> + Opens a binary file, reads the contents of the file into a byte array, and then closes the file. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileExists(System.String)"> + <summary> + Checks whether the specified file exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FilePersisted(System.String)"> + <summary> + Checks if a specific file is persisted in the steam cloud. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileTime(System.String)"> + <summary> + Gets the specified file's last modified date/time. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileSize(System.String)"> + <summary> + Gets the specified files size in bytes. 0 if not exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileForget(System.String)"> + <summary> + Deletes the file from remote storage, but leaves it on the local disk and remains accessible from the API. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileDelete(System.String)"> + <summary> + Deletes a file from the local disk, and propagates that delete to the cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaBytes"> + <summary> + Number of bytes total + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaUsedBytes"> + <summary> + Number of bytes used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaRemainingBytes"> + <summary> + Number of bytes remaining until your quota is used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabled"> + <summary> + returns true if IsCloudEnabledForAccount AND IsCloudEnabledForApp + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForAccount"> + <summary> + Checks if the account wide Steam Cloud setting is enabled for this user + or if they disabled it in the Settings->Cloud dialog. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForApp"> + <summary> + Checks if the per game Steam Cloud setting is enabled for this user + or if they disabled it in the Game Properties->Update dialog. + + This must only ever be set as the direct result of the user explicitly + requesting that it's enabled or not. This is typically accomplished with + a checkbox within your in-game options + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.FileCount"> + <summary> + Gets the total number of local files synchronized by Steam Cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.Files"> + <summary> + Get a list of filenames synchronized by Steam Cloud + </summary> + </member> + <member name="T:Steamworks.SteamScreenshots"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotRequested"> + <summary> + A screenshot has been requested by the user from the Steam screenshot hotkey. + This will only be called if Hooked is true, in which case Steam + will not take the screenshot itself. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotReady"> + <summary> + A screenshot successfully written or otherwise added to the library and can now be tagged. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotFailed"> + <summary> + A screenshot attempt failed + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.WriteScreenshot(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.AddScreenshot(System.String,System.String,System.Int32,System.Int32)"> + <summary> + Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + JPEG, TGA, and PNG formats are supported. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.TriggerScreenshot"> + <summary> + Causes the Steam overlay to take a screenshot. + If screenshots are being hooked by the game then a + ScreenshotRequested callback is sent back to the game instead. + </summary> + </member> + <member name="P:Steamworks.SteamScreenshots.Hooked"> + <summary> + Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or if the game handles them. + Hooking is disabled by default, and only ever enabled if you do so with this function. + If the hooking is enabled, then the ScreenshotRequested_t callback will be sent if the user presses the hotkey or + when TriggerScreenshot is called, and then the game is expected to call WriteScreenshot or AddScreenshotToLibrary in response. + </summary> + </member> + <member name="T:Steamworks.SteamServer"> + <summary> + Provides the core of the Steam Game Servers API + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnValidateAuthTicketResponse"> + <summary> + User has been authed or rejected + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the server now is logged on and has a working connection to the Steam master server. + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServerConnectFailure"> + <summary> + This will occur periodically if the Steam client is not connected, and has failed when retrying to establish a connection (result, stilltrying) + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersDisconnected"> + <summary> + Disconnected from Steam + </summary> + </member> + <member name="M:Steamworks.SteamServer.Init(Steamworks.AppId,Steamworks.SteamServerInit,System.Boolean)"> + <summary> + Initialize the steam server. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="M:Steamworks.SteamServer.RunCallbacks"> + <summary> + Run the callbacks. This is also called in Async callbacks. + </summary> + </member> + <member name="P:Steamworks.SteamServer.DedicatedServer"> + <summary> + Sets whether this should be marked as a dedicated server. + If not, it is assumed to be a listen server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MaxPlayers"> + <summary> + Gets or sets the current MaxPlayers. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.BotCount"> + <summary> + Gets or sets the current BotCount. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MapName"> + <summary> + Gets or sets the current Map Name. + </summary> + </member> + <member name="P:Steamworks.SteamServer.ModDir"> + <summary> + Gets or sets the current ModDir + </summary> + </member> + <member name="P:Steamworks.SteamServer.Product"> + <summary> + Gets the current product + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameDescription"> + <summary> + Gets or sets the current Product + </summary> + </member> + <member name="P:Steamworks.SteamServer.ServerName"> + <summary> + Gets or sets the current ServerName + </summary> + </member> + <member name="P:Steamworks.SteamServer.Passworded"> + <summary> + Set whether the server should report itself as passworded + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameTags"> + <summary> + Gets or sets the current GameTags. This is a comma seperated list of tags for this server. + When querying the server list you can filter by these tags. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOnAnonymous"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOff"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="P:Steamworks.SteamServer.LoggedOn"> + <summary> + Returns true if the server is connected and registered with the Steam master server + You should have called LogOnAnonymous etc on startup. + </summary> + </member> + <member name="P:Steamworks.SteamServer.PublicIp"> + <summary> + To the best of its ability this tries to get the server's + current public ip address. Be aware that this is likely to return + null for the first few seconds after initialization. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeats"> + <summary> + Enable or disable heartbeats, which are sent regularly to the master server. + Enabled by default. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeatRate"> + <summary> + Set heartbeat interval, if automatic heartbeats are enabled. + You can leave this at the default. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ForceHeartbeat"> + <summary> + Force send a heartbeat to the master server instead of waiting + for the next automatic update (if you've left them enabled) + </summary> + </member> + <member name="M:Steamworks.SteamServer.UpdatePlayer(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Update this connected player's information. You should really call this + any time a player's name or score changes. This keeps the information shown + to server queries up to date. + </summary> + </member> + <member name="M:Steamworks.SteamServer.SetKey(System.String,System.String)"> + <summary> + Sets a Key Value. These can be anything you like, and are accessible + when querying servers from the server list. + + Information describing gamemodes are common here. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ClearKeys"> + <summary> + Remove all key values + </summary> + </member> + <member name="M:Steamworks.SteamServer.BeginAuthSession(System.Byte[],Steamworks.SteamId)"> + <summary> + Start authorizing a ticket. This user isn't authorized yet. Wait for a call to OnAuthChange. + </summary> + </member> + <member name="M:Steamworks.SteamServer.EndSession(Steamworks.SteamId)"> + <summary> + Forget this guy. They're no longer in the game. + </summary> + </member> + <member name="M:Steamworks.SteamServer.GetOutgoingPacket(Steamworks.Data.OutgoingPacket@)"> + <summary> + If true, Steam wants to send a packet. You should respond by sending + this packet in an unconnected way to the returned Address and Port. + </summary> + <param name="packet">Packet to send. The Data passed is pooled - so use it immediately.</param> + <returns>True if we want to send a packet</returns> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.Byte[],System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.IntPtr,System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.UserHasLicenseForApp(Steamworks.SteamId,Steamworks.AppId)"> + <summary> + Does the user own this app (which could be DLC) + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.RequestUserStatsAsync(Steamworks.SteamId)"> + <summary> + Downloads stats for the user + If the user has no stats will return fail + these stats will only be auto-updated for clients playing on the server + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Unlocks the specified achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.ClearAchievement(Steamworks.SteamId,System.String)"> + <summary> + Resets the unlock status of an achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Return true if available, exists and unlocked + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.StoreUserStats(Steamworks.SteamId)"> + <summary> + Once you've set a stat change on a user you need to commit your changes. + You can do that using this function. The callback will let you know if + your action succeeded, but most of the time you can fire and forget. + </summary> + </member> + <member name="T:Steamworks.SteamUGC"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUGC.OnDownloadItemResult"> + <summary> + Posted after Download call + </summary> + </member> + <member name="M:Steamworks.SteamUGC.Download(Steamworks.Data.PublishedFileId,System.Boolean)"> + <summary> + Start downloading this item. You'll get notified of completion via OnDownloadItemResult. + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="highPriority">If true this should go straight to the top of the download list</param> + <returns>true if nothing went wrong and the download is started</returns> + </member> + <member name="M:Steamworks.SteamUGC.DownloadAsync(Steamworks.Data.PublishedFileId,System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Will attempt to download this item asyncronously - allowing you to instantly react to its installation + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="progress">An optional callback</param> + <param name="ct">Allows you to send a message to cancel the download anywhere during the process</param> + <param name="milisecondsUpdateDelay">How often to call the progress function</param> + <returns>true if downloaded and installed correctly</returns> + </member> + <member name="M:Steamworks.SteamUGC.QueryFileAsync(Steamworks.Data.PublishedFileId)"> + <summary> + Utility function to fetch a single item. Internally this uses Ugc.FileQuery - + which you can use to query multiple items if you need to. + </summary> + </member> + <member name="T:Steamworks.SteamUser"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the Steam client now has a working connection to the Steam servers. + Usually this will have occurred before the game has launched, and should only be seen if the + user has dropped connection due to a networking issue or a Steam server update. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServerConnectFailure"> + <summary> + Called when a connection attempt has failed. + This will occur periodically if the Steam client is not connected, + and has failed when retrying to establish a connection. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersDisconnected"> + <summary> + Called if the client has lost connection to the Steam servers. + Real-time services will be disabled until a matching OnSteamServersConnected has been posted. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnClientGameServerDeny"> + <summary> + Sent by the Steam server to the client telling it to disconnect from the specified game server, + which it may be in the process of or already connected to. + The game client should immediately disconnect upon receiving this message. + This can usually occur if the user doesn't have rights to play on the game server. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnLicensesUpdated"> + <summary> + Called whenever the users licenses (owned packages) changes. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnValidateAuthTicketResponse"> + <summary> + Called when an auth ticket has been validated. + The first parameter is the steamid of this user + The second is the Steam ID that owns the game, this will be different from the first + if the game is being borrowed via Steam Family Sharing + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGetAuthSessionTicketResponse"> + <summary> + Used internally for GetAuthSessionTicketAsync + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnMicroTxnAuthorizationResponse"> + <summary> + Called when a user has responded to a microtransaction authorization request. + ( appid, orderid, user authorized ) + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGameWebCallback"> + <summary> + Sent to your game in response to a steam://gamewebcallback/ command from a user clicking a link in the Steam overlay browser. + You can use this to add support for external site signups where you want to pop back into the browser after some web page + signup sequence, and optionally get back some detail about that. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnDurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, + half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.SteamUser.VoiceRecord"> + <summary> + Starts/Stops voice recording. + Once started, use GetAvailableVoice and GetVoice to get the data, and then call StopVoiceRecording + when the user has released their push-to-talk hotkey or the game session has completed. + </summary> + </member> + <member name="P:Steamworks.SteamUser.HasVoiceData"> + <summary> + Returns true if we have voice data waiting to be read + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceData(System.IO.Stream)"> + <summary> + Reads the voice data and returns the number of bytes written. + The compressed data can be transmitted by your application and decoded back into raw audio data using + DecompressVoice on the other side. The compressed data provided is in an arbitrary format and is not meant to be played directly. + This should be called once per frame, and at worst no more than four times a second to keep the microphone input delay as low as + possible. Calling this any less may result in gaps in the returned stream. + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceDataBytes"> + <summary> + Reads the voice data and returns the bytes. You should obviously ideally be using + ReadVoiceData because it won't be creating a new byte array every call. But this + makes it easier to get it working, so let the babies have their bottle. + </summary> + </member> + <member name="M:Steamworks.SteamUser.DecompressVoice(System.IO.Stream,System.Int32,System.IO.Stream)"> + <summary> + Decodes the compressed voice data returned by GetVoice. + The output data is raw single-channel 16-bit PCM audio.The decoder supports any sample rate from 11025 to 48000. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicket"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicketAsync(System.Double)"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + This waits for a positive response from the backend before returning the ticket. This means + the ticket is definitely ready to go as soon as it returns. Will return null if the callback + times out or returns negatively. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsBehindNAT"> + <summary> + Checks if the current users looks like they are behind a NAT device. + This is only valid if the user is connected to the Steam servers and may not catch all forms of NAT. + </summary> + </member> + <member name="P:Steamworks.SteamUser.SteamLevel"> + <summary> + Gets the Steam level of the user, as shown on their Steam community profile. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetStoreAuthUrlAsync(System.String)"> + <summary> + Requests a URL which authenticates an in-game browser for store check-out, and then redirects to the specified URL. + As long as the in-game browser accepts and handles session cookies, Steam microtransaction checkout pages will automatically recognize the user instead of presenting a login page. + NOTE: The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. + NOTE: The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneVerified"> + <summary> + Checks whether the current user has verified their phone number. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsTwoFactorEnabled"> + <summary> + Checks whether the current user has Steam Guard two factor authentication enabled on their account. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneIdentifying"> + <summary> + Checks whether the user's phone number is used to uniquely identify them. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneRequiringVerification"> + <summary> + Checks whether the current user's phone number is awaiting (re)verification. + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync(System.Byte[])"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + If you get a null result from this it's probably because you're calling it too often. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetDurationControl"> + <summary> + Get anti indulgence / duration control + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementIconFetched"> + <summary> + called when the achivement icon is loaded + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsReceived"> + <summary> + called when the latests stats and achievements have been received + from the server + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsStored"> + <summary> + result of a request to store the user stats for a game + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementProgress"> + <summary> + result of a request to store the achievements for a game, or an + "indicate progress" call. If both m_nCurProgress and m_nMaxProgress + are zero, that means the achievement has been fully unlocked + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsUnloaded"> + <summary> + Callback indicating that a user's stats have been unloaded + </summary> + </member> + <member name="P:Steamworks.SteamUserStats.Achievements"> + <summary> + Get the available achievements + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.IndicateAchievementProgress(System.String,System.Int32,System.Int32)"> + <summary> + Show the user a pop-up notification with the current progress toward an achievement. + Will return false if RequestCurrentStats has not completed and successfully returned + its callback, if the achievement doesn't exist/has unpublished changes in the app's + Steamworks Admin page, or if the achievement is unlocked. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.PlayerCountAsync"> + <summary> + Tries to get the number of players currently playing this game. + Or -1 if failed. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.StoreStats"> + <summary> + Send the changed stats and achievements data to the server for permanent storage. + If this fails then nothing is sent to the server. It's advisable to keep trying until the call is successful. + This call can be rate limited. Call frequency should be on the order of minutes, rather than seconds.You should only be calling this during major state changes such as the end of a round, the map changing, or the user leaving a server. This call is required to display the achievement unlock notification dialog though, so if you have called SetAchievement then it's advisable to call this soon after that. + If you have stats or achievements that you have saved locally but haven't uploaded with this function when your application process ends then this function will automatically be called. + You can find additional debug information written to the %steam_install%\logs\stats_log.txt file. + This function returns true upon success if : + RequestCurrentStats has completed and successfully returned its callback AND + the current game has stats associated with it in the Steamworks Partner backend, and those stats are published. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestCurrentStats"> + <summary> + Asynchronously request the user's current stats and achievements from the server. + You must always call this first to get the initial status of stats and achievements. + Only after the resulting callback comes back can you start calling the rest of the stats + and achievement functions for the current user. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestGlobalStatsAsync(System.Int32)"> + <summary> + Asynchronously fetches global stats data, which is available for stats marked as + "aggregated" in the App Admin panel of the Steamworks website. + You must have called RequestCurrentStats and it needs to return successfully via + its callback prior to calling this. + </summary> + <param name="days">How many days of day-by-day history to retrieve in addition to the overall totals. The limit is 60.</param> + <returns>OK indicates success, InvalidState means you need to call RequestCurrentStats first, Fail means the remote call failed</returns> + </member> + <member name="M:Steamworks.SteamUserStats.FindOrCreateLeaderboardAsync(System.String,Steamworks.Data.LeaderboardSort,Steamworks.Data.LeaderboardDisplay)"> + <summary> + Gets a leaderboard by name, it will create it if it's not yet created. + Leaderboards created with this function will not automatically show up in the Steam Community. + You must manually set the Community Name field in the App Admin panel of the Steamworks website. + As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on + the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of + dynamically created leaderboards. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Int32)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Single)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Int32)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Single)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatInt(System.String)"> + <summary> + Get a Int stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatFloat(System.String)"> + <summary> + Get a float stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.ResetAll(System.Boolean)"> + <summary> + Practically wipes the slate clean for this user. If includeAchievements is true, will wipe + any achievements too. + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamUtils"> + <summary> + Interface which provides access to a range of miscellaneous utility functions + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnIpCountryChanged"> + <summary> + The country of the user changed + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnLowBatteryPower"> + <summary> + Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute + The parameter is the number of minutes left + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnSteamShutdown"> + <summary> + Called when Steam wants to shutdown + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnGamepadTextInputDismissed"> + <summary> + Big Picture gamepad text input has been closed. Parameter is true if text was submitted, false if cancelled etc. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceAppActive"> + <summary> + Returns the number of seconds since the application was active + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceComputerActive"> + <summary> + Returns the number of seconds since the user last moved the mouse etc + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamServerTime"> + <summary> + Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IpCountry"> + <summary> + returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + e.g "US" or "UK". + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImageSize(System.Int32,System.UInt32@,System.UInt32@)"> + <summary> + returns true if the image exists, and the buffer was successfully filled out + results are returned in RGBA format + the destination buffer size should be 4 * height * width * sizeof(char) + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImage(System.Int32)"> + <summary> + returns the image in RGBA format + </summary> + </member> + <member name="P:Steamworks.SteamUtils.UsingBatteryPower"> + <summary> + Returns true if we're using a battery (ie, a laptop not plugged in) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.CurrentBatteryPower"> + <summary> + Returns battery power [0-1] + </summary> + </member> + <member name="P:Steamworks.SteamUtils.OverlayNotificationPosition"> + <summary> + Sets the position where the overlay instance for the currently calling game should show notifications. + This position is per-game and if this function is called from outside of a game context it will do nothing. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsOverlayEnabled"> + <summary> + Returns true if the overlay is running and the user can access it. The overlay process could take a few seconds to + start and hook the game process, so this function will initially return false while the overlay is loading. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.DoesOverlayNeedPresent"> + <summary> + Normally this call is unneeded if your game has a constantly running frame loop that calls the + D3D Present API, or OGL SwapBuffers API every frame. + + However, if you have a game that only refreshes the screen on an event driven basis then that can break + the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + need to Present() to the screen any time an even needing a notification happens or when the overlay is + brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.CheckFileSignatureAsync(System.String)"> + <summary> + Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + of the partner site, for example to refuse to load modified executable files. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.ShowGamepadTextInput(Steamworks.GamepadTextInputMode,Steamworks.GamepadTextInputLineMode,System.String,System.Int32,System.String)"> + <summary> + Activates the Big Picture text input dialog which only supports gamepad input + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetEnteredGamepadText"> + <summary> + Returns previously entered text + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamUILanguage"> + <summary> + returns the language the steam client is running in, you probably want + Apps.CurrentGameLanguage instead, this is for very special usage cases + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamRunningInVR"> + <summary> + returns true if Steam itself is running in VR mode + </summary> + </member> + <member name="M:Steamworks.SteamUtils.SetOverlayNotificationInset(System.Int32,System.Int32)"> + <summary> + Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamInBigPictureMode"> + <summary> + returns true if Steam and the Steam Overlay are running in Big Picture mode + Games much be launched through the Steam client to enable the Big Picture overlay. During development, + a game can be added as a non-steam game to the developers library to test this feature + </summary> + </member> + <member name="M:Steamworks.SteamUtils.StartVRDashboard"> + <summary> + ask SteamUI to create and render its OpenVR dashboard + </summary> + </member> + <member name="P:Steamworks.SteamUtils.VrHeadsetStreaming"> + <summary> + Set whether the HMD content will be streamed via Steam In-Home Streaming + If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + (this is useful for games that have asymmetric multiplayer gameplay) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamChinaLauncher"> + <summary> + Returns whether this steam client is a Steam China specific client, vs the global client + </summary> + </member> + <member name="T:Steamworks.SteamVideo"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="P:Steamworks.SteamVideo.IsBroadcasting"> + <summary> + Return true if currently using Steam's live broadcasting + </summary> + </member> + <member name="P:Steamworks.SteamVideo.NumViewers"> + <summary> + If we're broadcasting, will return the number of live viewers + </summary> + </member> + <member name="P:Steamworks.Controller.ActionSet"> + <summary> + Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + our state loops, instead of trying to place it in all of your state transitions. + </summary> + </member> + <member name="M:Steamworks.Controller.GetDigitalState(System.String)"> + <summary> + Returns the current state of the supplied digital game action + </summary> + </member> + <member name="M:Steamworks.Controller.GetAnalogState(System.String)"> + <summary> + Returns the current state of these supplied analog game action + </summary> + </member> + <member name="P:Steamworks.Friend.IsMe"> + <summary> + Returns true if this is the local user + </summary> + </member> + <member name="P:Steamworks.Friend.IsFriend"> + <summary> + Return true if this is a friend + </summary> + </member> + <member name="P:Steamworks.Friend.IsBlocked"> + <summary> + Returns true if you have this user blocked + </summary> + </member> + <member name="P:Steamworks.Friend.IsPlayingThisGame"> + <summary> + Return true if this user is playing the game we're running + </summary> + </member> + <member name="P:Steamworks.Friend.IsOnline"> + <summary> + Returns true if this friend is online + </summary> + </member> + <member name="M:Steamworks.Friend.RequestInfoAsync"> + <summary> + Sometimes we don't know the user's name. This will wait until we have + downloaded the information on this user. + </summary> + </member> + <member name="P:Steamworks.Friend.IsAway"> + <summary> + Returns true if this friend is marked as away + </summary> + </member> + <member name="P:Steamworks.Friend.IsBusy"> + <summary> + Returns true if this friend is marked as busy + </summary> + </member> + <member name="P:Steamworks.Friend.IsSnoozing"> + <summary> + Returns true if this friend is marked as snoozing + </summary> + </member> + <member name="M:Steamworks.Friend.InviteToGame(System.String)"> + <summary> + Invite this friend to the game that we are playing + </summary> + </member> + <member name="M:Steamworks.Friend.SendMessage(System.String)"> + <summary> + Sends a message to a Steam friend. Returns true if success + </summary> + </member> + <member name="M:Steamworks.Friend.RequestUserStatsAsync"> + <summary> + Tries to get download the latest user stats + </summary> + <returns>True if successful, False if failure</returns> + </member> + <member name="M:Steamworks.Friend.GetStatFloat(System.String,System.Single)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetStatInt(System.String,System.Int32)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievement(System.String,System.Boolean)"> + <summary> + Gets a user achievement state. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievementUnlockTime(System.String)"> + <summary> + Gets a the time this achievement was unlocked. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <returns>The time unlocked. If it wasn't unlocked, or you haven't downloaded the stats yet - will return DateTime.MinValue</returns> + </member> + <member name="P:Steamworks.InventoryDef.Name"> + <summary> + Shortcut to call GetProperty( "name" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Description"> + <summary> + Shortcut to call GetProperty( "description" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrl"> + <summary> + Shortcut to call GetProperty( "icon_url" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrlLarge"> + <summary> + Shortcut to call GetProperty( "icon_url_large" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.PriceCategory"> + <summary> + Shortcut to call GetProperty( "price_category" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Type"> + <summary> + Shortcut to call GetProperty( "type" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IsGenerator"> + <summary> + Returns true if this is an item that generates an item, rather + than something that is actual an item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.ExchangeSchema"> + <summary> + Shortcut to call GetProperty( "exchange" ) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipes"> + <summary> + Get a list of exchanges that are available to make this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Marketable"> + <summary> + Shortcut to call GetBoolProperty( "marketable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Tradable"> + <summary> + Shortcut to call GetBoolProperty( "tradable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Created"> + <summary> + Gets the property timestamp + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Modified"> + <summary> + Gets the property modified + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty(System.String)"> + <summary> + Get a specific property by name + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetBoolProperty(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty``1(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Properties"> + <summary> + Gets a list of all properties on this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalPrice"> + <summary> + Returns the price of this item in the local currency (SteamInventory.Currency) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalBasePrice"> + <summary> + If the price has been discounted, LocalPrice will differ from LocalBasePrice + (assumed, this isn't documented) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipesContainingThis"> + <summary> + Return a list of recepies that contain this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Properties"> + <summary> + Only available if the result set was created with the getproperties + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsNoTrade"> + <summary> + This item is account-locked and cannot be traded or given away. + This is an item status flag which is permanently attached to specific item instances + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsRemoved"> + <summary> + The item has been destroyed, traded away, expired, or otherwise invalidated. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsConsumed"> + <summary> + The item quantity has been decreased by 1 via ConsumeItem API. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="M:Steamworks.InventoryItem.ConsumeAsync(System.Int32)"> + <summary> + Consumes items from a user's inventory. If the quantity of the given item goes to zero, it is permanently removed. + Once an item is removed it cannot be recovered.This is not for the faint of heart - if your game implements item removal at all, + a high-friction UI confirmation process is highly recommended.ConsumeItem can be restricted to certain item definitions or fully + blocked via the Steamworks website to minimize support/abuse issues such as the classic "my brother borrowed my laptop and deleted all of my rare items". + </summary> + </member> + <member name="M:Steamworks.InventoryItem.SplitStackAsync(System.Int32)"> + <summary> + Split stack into two items + </summary> + </member> + <member name="M:Steamworks.InventoryItem.AddAsync(Steamworks.InventoryItem,System.Int32)"> + <summary> + Add x units of the target item to this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Acquired"> + <summary> + Will try to return the date that this item was aquired. You need to have for the items + with their properties for this to work. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Origin"> + <summary> + Tries to get the origin property. Need properties for this to work. + Will return a string like "market" + </summary> + </member> + <member name="T:Steamworks.InventoryItem.Amount"> + <summary> + Small utility class to describe an item with a quantity + </summary> + </member> + <member name="T:Steamworks.InventoryRecipe"> + <summary> + A structured description of an item exchange + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.DefinitionId"> + <summary> + The definition ID of the ingredient. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Definition"> + <summary> + If we don't know about this item definition this might be null. + In which case, DefinitionId should still hold the correct id. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Count"> + <summary> + The amount of this item needed. Generally this will be 1. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Result"> + <summary> + The item that this will create. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredients"> + <summary> + The items, with quantity required to create this item. + </summary> + </member> + <member name="M:Steamworks.InventoryResult.BelongsTo(Steamworks.SteamId)"> + <summary> + Checks whether an inventory result handle belongs to the specified Steam ID. + This is important when using Deserialize, to verify that a remote player is not pretending to have a different user's inventory + </summary> + </member> + <member name="M:Steamworks.InventoryResult.Serialize"> + <summary> + Serialized result sets contain a short signature which can't be forged or replayed across different game sessions. + A result set can be serialized on the local client, transmitted to other players via your game networking, and + deserialized by the remote players.This is a secure way of preventing hackers from lying about posessing + rare/high-value items. Serializes a result set with signature bytes to an output buffer.The size of a serialized + result depends on the number items which are being serialized.When securely transmitting items to other players, + it is recommended to use GetItemsByID first to create a minimal result set. + Results have a built-in timestamp which will be considered "expired" after an hour has elapsed.See DeserializeResult + for expiration handling. + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.Owner"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.MetaData"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.JoinAsync"> + <summary> + Will attempt to join the party. If successful will return a connection string. + If failed, will return null + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.OnReservationCompleted(Steamworks.SteamId)"> + <summary> + When a user follows your beacon, Steam will reserve one of the open party slots for them, and send your game a ReservationNotification callback. + When that user joins your party, call OnReservationCompleted to notify Steam that the user has joined successfully + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.CancelReservation(Steamworks.SteamId)"> + <summary> + To cancel a reservation (due to timeout or user input), call this. + Steam will open a new reservation slot. + Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.Destroy"> + <summary> + Turn off the beacon + </summary> + </member> + <member name="T:Steamworks.SteamServerInit"> + <summary> + Used to set up the server. + The variables in here are all required to be set, and can't be changed once the server is created. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.VersionString"> + <summary> + The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. + If you go into the dedicated server tab on steamworks you'll be able to server the latest version. If this version number is + less than that latest version then your server won't show. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.ModDir"> + <summary> + This should be the same directory game where gets installed into. Just the folder name, not the whole path. I.e. "Rust", "Garrysmod". + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.GameDescription"> + <summary> + The game description. Setting this to the full name of your game is recommended. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.DedicatedServer"> + <summary> + Is a dedicated server + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithRandomSteamPort"> + <summary> + Set the Steam quert port + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithQueryShareGamePort"> + <summary> + If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE into usQueryPort, then it causes the game server API to use + "GameSocketShare" mode, which means that the game is responsible for sending and receiving UDP packets for the master + server updater. + + More info about this here: https://partner.steamgames.com/doc/api/ISteamGameServer#HandleIncomingPacket + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewCommunityFile"> + <summary> + Create a Normal Workshop item that can be subscribed to + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewMicrotransactionFile"> + <summary> + Workshop item that is meant to be voted on for the purpose of selling in-game + </summary> + </member> + <member name="F:Steamworks.Ugc.PublishResult.NeedsWorkshopAgreement"> + <summary> + https://partner.steamgames.com/doc/features/workshop/implementation#Legal + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Id"> + <summary> + The actual ID of this file + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Title"> + <summary> + The given title of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Description"> + <summary> + The description of this item, in your local language if available + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Tags"> + <summary> + A list of tags for this item, all lowercase + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CreatorApp"> + <summary> + App Id of the app that created this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ConsumerApp"> + <summary> + App Id of the app that will consume this item. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Owner"> + <summary> + User who created this content + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Score"> + <summary> + The bayesian average for up votes / total votes, between [0,1] + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Created"> + <summary> + Time when the published item was created + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Updated"> + <summary> + Time when the published item was last updated + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPublic"> + <summary> + True if this is publically visible + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsFriendsOnly"> + <summary> + True if this item is only visible by friends of the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPrivate"> + <summary> + True if this is only visible to the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsBanned"> + <summary> + True if this item has been banned + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsAcceptedForUse"> + <summary> + Whether the developer of this app has specifically flagged this item as accepted in the Workshop + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesUp"> + <summary> + The number of upvotes of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesDown"> + <summary> + The number of downvotes of this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Download(System.Boolean)"> + <summary> + Start downloading this item. + If this returns false the item isn't getting downloaded. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesTotal"> + <summary> + If we're downloading, how big the total download is + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesDownloaded"> + <summary> + If we're downloading, how much we've downloaded + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.SizeBytes"> + <summary> + If we're installed, how big is the install + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadAmount"> + <summary> + If we're downloading our current progress as a delta betwen 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.HasTag(System.String)"> + <summary> + A case insensitive check for tag + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Subscribe"> + <summary> + Allows the user to subscribe to this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.DownloadAsync(System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Allows the user to subscribe to download this item asyncronously + If CancellationToken is default then there is 60 seconds timeout + Progress will be set to 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Unsubscribe"> + <summary> + Allows the user to unsubscribe from this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.AddFavorite"> + <summary> + Adds item to user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.RemoveFavorite"> + <summary> + Removes item from user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Vote(System.Boolean)"> + <summary> + Allows the user to rate a workshop item up or down. + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.GetUserVote"> + <summary> + Gets the current users vote on the item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Url"> + <summary> + Return a URL to view this item online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ChangelogUrl"> + <summary> + The URl to view this item's changelog + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CommentsUrl"> + <summary> + The URL to view the comments on this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DiscussUrl"> + <summary> + The URL to discuss this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.StatsUrl"> + <summary> + The URL to view this items stats online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.PreviewImageUrl"> + <summary> + The URL to the preview image for this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Edit"> + <summary> + Edit this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAnyTag"> + <summary> + Found items must have at least one of the defined tags + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAllTags"> + <summary> + Found items must have all defined tags + </summary> + </member> + <member name="P:Steamworks.Epoch.Current"> + <summary> + Returns the current Unix Epoch + </summary> + </member> + <member name="M:Steamworks.Epoch.ToDateTime(System.Decimal)"> + <summary> + Convert an epoch to a datetime + </summary> + </member> + <member name="M:Steamworks.Epoch.FromDateTime(System.DateTime)"> + <summary> + Convert a DateTime to a unix time + </summary> + </member> + <member name="M:Steamworks.Helpers.TakeBuffer(System.Int32)"> + <summary> + Returns a buffer. This will get returned and reused later on. + </summary> + </member> + <member name="T:Steamworks.PreserveAttribute"> + <summary> + Prevent unity from stripping shit we depend on + https://docs.unity3d.com/Manual/ManagedCodeStripping.html + </summary> + </member> + </members> +</doc> diff --git a/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win32.dll b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win32.dll Binary files differnew file mode 100644 index 0000000..f7f75ea --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win32.dll diff --git a/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win32.pdb b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win32.pdb Binary files differnew file mode 100644 index 0000000..e8a9270 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win32.pdb diff --git a/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win32.xml b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win32.xml new file mode 100644 index 0000000..176b6b1 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win32.xml @@ -0,0 +1,3474 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Facepunch.Steamworks.Win32</name> + </assembly> + <members> + <member name="T:Steamworks.CallResult`1"> + <summary> + An awaitable version of a SteamAPICall_t + </summary> + </member> + <member name="M:Steamworks.CallResult`1.OnCompleted(System.Action)"> + <summary> + This gets called if IsComplete returned false on the first call. + The Action "continues" the async call. We pass it to the Dispatch + to be called when the callback returns. + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetResult"> + <summary> + Gets the result. This is called internally by the async shit. + </summary> + </member> + <member name="P:Steamworks.CallResult`1.IsCompleted"> + <summary> + Return true if complete or failed + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetAwaiter"> + <summary> + This is what makes this struct awaitable + </summary> + </member> + <member name="T:Steamworks.ICallbackData"> + <summary> + Gives us a generic way to get the CallbackId of structs + </summary> + </member> + <member name="M:Steamworks.AuthTicket.Cancel"> + <summary> + Cancels a ticket. + You should cancel your ticket when you close the game or leave a server. + </summary> + </member> + <member name="T:Steamworks.Dispatch"> + <summary> + Responsible for all callback/callresult handling + + This manually pumps Steam's message queue and dispatches those + events to any waiting callbacks/callresults. + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnDebugCallback"> + <summary> + If set then we'll call this function every time a callback is generated. + + This is SLOW!! - it's for debugging - don't keep it on all the time. If you want to access a specific + callback then please create an issue on github and I'll add it! + + Params are : [Callback Type] [Callback Contents] [server] + + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnException"> + <summary> + Called if an exception happens during a callback/callresult. + This is needed because the exception isn't always accessible when running + async.. and can fail silently. With this hooked you won't be stuck wondering + what happened. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Init"> + <summary> + This gets called from Client/Server Init + It's important to switch to the manual dispatcher + </summary> + </member> + <member name="F:Steamworks.Dispatch.runningFrame"> + <summary> + Make sure we don't call Frame in a callback - because that'll cause some issues for everyone. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Frame(Steamworks.Data.HSteamPipe)"> + <summary> + Calls RunFrame and processes events from this Steam Pipe + </summary> + </member> + <member name="F:Steamworks.Dispatch.actionsToCall"> + <summary> + To be safe we don't call the continuation functions while iterating + the Callback list. This is maybe overly safe because the only way this + could be an issue is if the callback list is modified in the continuation + which would only happen if starting or shutting down in the callback. + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessCallback(Steamworks.Dispatch.CallbackMsg_t,System.Boolean)"> + <summary> + A callback is a general global message + </summary> + </member> + <member name="M:Steamworks.Dispatch.CallbackToString(Steamworks.CallbackType,System.IntPtr,System.Int32)"> + <summary> + Given a callback, try to turn it into a string + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessResult(Steamworks.Dispatch.CallbackMsg_t)"> + <summary> + A result is a reply to a specific command + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopClientAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopServerAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.OnCallComplete``1(Steamworks.Data.SteamAPICall_t,System.Action,System.Boolean)"> + <summary> + Watch for a steam api call + </summary> + </member> + <member name="M:Steamworks.Dispatch.Install``1(System.Action{``0},System.Boolean)"> + <summary> + Install a global callback. The passed function will get called if it's all good. + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.Numeric"> + <summary> + The score is just a simple numerical value + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeSeconds"> + <summary> + The score represents a time, in seconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeMilliSeconds"> + <summary> + The score represents a time, in milliseconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Ascending"> + <summary> + The top-score is the lowest number + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Descending"> + <summary> + The top-score is the highest number + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Unreliable"> + <summary> + Send the message unreliably. Can be lost. Messages *can* be larger than a + single MTU (UDP packet), but there is no retransmission, so if any piece + of the message is lost, the entire message will be dropped. + + The sending API does have some knowledge of the underlying connection, so + if there is no NAT-traversal accomplished or there is a recognized adjustment + happening on the connection, the packet will be batched until the connection + is open again. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoNagle"> + <summary> + Disable Nagle's algorithm. + By default, Nagle's algorithm is applied to all outbound messages. This means + that the message will NOT be sent immediately, in case further messages are + sent soon after you send this, which can be grouped together. Any time there + is enough buffered data to fill a packet, the packets will be pushed out immediately, + but partially-full packets not be sent until the Nagle timer expires. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoDelay"> + <summary> + If the message cannot be sent very soon (because the connection is still doing some initial + handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable + messages. Using this flag on reliable messages is invalid. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Reliable"> + Reliable message send. Can send up to 0.5mb in a single message. + Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for + efficient sends of large chunks of data. + </member> + <member name="P:Steamworks.Data.NetIdentity.LocalHost"> + <summary> + Return a NetIdentity that represents LocalHost + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.IsLocalHost"> + <summary> + Return true if this identity is localhost + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.SteamId)~Steamworks.Data.NetIdentity"> + <summary> + Convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetAddress)~Steamworks.Data.NetIdentity"> + <summary> + Set the specified Address + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetIdentity)~Steamworks.SteamId"> + <summary> + Automatically convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="P:Steamworks.Data.NetIdentity.SteamId"> + <summary> + Returns NULL if we're not a SteamId + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.Address"> + <summary> + Returns NULL if we're not a NetAddress + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.ToString"> + <summary> + We override tostring to provide a sensible representation + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Port"> + <summary> + The Port. This is redundant documentation. + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.AnyIp(System.UInt16)"> + <summary> + Any IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.LocalHost(System.UInt16)"> + <summary> + Localhost IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.String,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.Net.IPAddress,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Cleared"> + <summary> + Set everything to zero + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv6AllZeros"> + <summary> + Return true if the IP is ::0. (Doesn't check port.) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv4"> + <summary> + Return true if IP is mapped IPv4 + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsLocalHost"> + <summary> + Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Address"> + <summary> + Get the Address section + </summary> + </member> + <member name="T:Steamworks.Data.Connection"> + <summary> + Used as a base to create your client connection. This creates a socket + to a single connection. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Accept"> + <summary> + Accept an incoming connection that has been received on a listen socket. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Close(System.Boolean,System.Int32,System.String)"> + <summary> + Disconnects from the remote host and invalidates the connection handle. Any unread data on the connection is discarded.. + reasonCode is defined and used by you. + </summary> + </member> + <member name="P:Steamworks.Data.Connection.UserData"> + <summary> + Get/Set connection user data + </summary> + </member> + <member name="P:Steamworks.Data.Connection.ConnectionName"> + <summary> + A name for the connection, used mostly for debugging + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.IntPtr,System.Int32,Steamworks.Data.SendType)"> + <summary> + This is the best version to use. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],System.Int32,System.Int32,Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.String,Steamworks.Data.SendType)"> + <summary> + This creates a ton of garbage - so don't do anything with this beyond testing! + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Flush"> + <summary> + Flush any messages waiting on the Nagle timer and send them at the next transmission + opportunity (often that means right now). + </summary> + </member> + <member name="M:Steamworks.Data.Connection.DetailedStatus"> + <summary> + Returns detailed connection stats in text format. Useful + for dumping to a log, etc. + </summary> + <returns>Plain text connection info</returns> + </member> + <member name="T:Steamworks.Data.ConnectionInfo"> + <summary> + Describe the state of a connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.State"> + <summary> + High level state of the connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Address"> + <summary> + Remote address. Might be all 0's if we don't know it, or if this is N/A. + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Identity"> + <summary> + Who is on the other end? Depending on the connection type and phase of the connection, we might not know + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.EndReason"> + <summary> + Basic cause of the connection termination or problem. + </summary> + </member> + <member name="T:Steamworks.Data.NetPingLocation"> + <summary> + + Object that describes a "location" on the Internet with sufficient + detail that we can reasonably estimate an upper bound on the ping between + the two hosts, even if a direct route between the hosts is not possible, + and the connection must be routed through the Steam Datagram Relay network. + This does not contain any information that identifies the host. Indeed, + if two hosts are in the same building or otherwise have nearly identical + networking characteristics, then it's valid to use the same location + object for both of them. + + NOTE: This object should only be used in the same process! Do not serialize it, + send it over the wire, or persist it in a file or database! If you need + to do that, convert it to a string representation using the methods in + ISteamNetworkingUtils(). + + </summary> + </member> + <member name="M:Steamworks.Data.NetPingLocation.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + Estimate the round-trip latency between two arbitrary locations, in + milliseconds. This is a conservative estimate, based on routing through + the relay network. For most basic relayed connections, this ping time + will be pretty accurate, since it will be based on the route likely to + be actually used. + + If a direct IP route is used (perhaps via NAT traversal), then the route + will be different, and the ping time might be better. Or it might actually + be a bit worse! Standard IP routing is frequently suboptimal! + + But even in this case, the estimate obtained using this method is a + reasonable upper bound on the ping time. (Also it has the advantage + of returning immediately and not sending any packets.) + + In a few cases we might not able to estimate the route. In this case + a negative value is returned. k_nSteamNetworkingPing_Failed means + the reason was because of some networking difficulty. (Failure to + ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + currently answer the question for some other reason. + + Do you need to be able to do this from a backend/matchmaking server? + You are looking for the "ticketgen" library. + </member> + <member name="M:Steamworks.Data.Socket.Close"> + <summary> + Destroy a listen socket. All the connections that were accepting on the listen + socket are closed ungracefully. + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.State"> + <summary> + True if unlocked + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.UnlockTime"> + <summary> + Should hold the unlock time if State is true + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIcon"> + <summary> + Gets the icon of the achievement. This can return a null image even though the image exists if the image + hasn't been downloaded by Steam yet. You can use GetIconAsync if you want to wait for the image to be downloaded. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIconAsync(System.Int32)"> + <summary> + Gets the icon of the achievement, waits for it to load if we have to + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.GlobalUnlocked"> + <summary> + Returns the fraction (0-1) of users who have unlocked the specified achievement, or -1 if no data available. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Trigger(System.Boolean)"> + <summary> + Make this achievement earned + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Clear"> + <summary> + Reset this achievement to not achieved + </summary> + </member> + <member name="T:Steamworks.Data.DurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Appid"> + <summary> + appid generating playtime + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Applicable"> + <summary> + is duration control applicable to user + game combination + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeInLastFiveHours"> + <summary> + playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeToday"> + <summary> + playtime on current calendar day + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Progress"> + <summary> + recommended progress + </summary> + </member> + <member name="P:Steamworks.Data.Leaderboard.Name"> + <summary> + the name of a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.ReplaceScore(System.Int32,System.Int32[])"> + <summary> + Submit your score and replace your old score even if it was better + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.SubmitScoreAsync(System.Int32,System.Int32[])"> + <summary> + Submit your new score, but won't replace your high score if it's lower + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.AttachUgc(Steamworks.Data.Ugc)"> + <summary> + Attaches a piece of user generated content the user's entry on a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAsync(System.Int32,System.Int32)"> + <summary> + Used to query for a sequential range of leaderboard entries by leaderboard Sort. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAroundUserAsync(System.Int32,System.Int32)"> + <summary> + Used to retrieve leaderboard entries relative a user's entry. If there are not enough entries in the leaderboard + before or after the user's entry, Steam will adjust the range to try to return the number of entries requested. + For example, if the user is #1 on the leaderboard and start is set to -2, end is set to 2, Steam will return the first + 5 entries in the leaderboard. If The current user has no entry, this will return null. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresFromFriendsAsync"> + <summary> + Used to retrieve all leaderboard entries for friends of the current user + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Join"> + <summary> + Try to join this room. Will return RoomEnter.Success on success, + and anything else is a failure + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Leave"> + <summary> + Leave a lobby; this will take effect immediately on the client side + other users in the lobby will be notified by a LobbyChatUpdate_t callback + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.InviteFriend(Steamworks.SteamId)"> + <summary> + Invite another user to the lobby + will return true if the invite is successfully sent, whether or not the target responds + returns false if the local user is not connected to the Steam servers + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MemberCount"> + <summary> + returns the number of users in the specified lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Members"> + <summary> + Returns current members. Need to be in the lobby to see the users. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetData(System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetData(System.String,System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.DeleteData(System.String)"> + <summary> + Removes a metadata key from the lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Data"> + <summary> + Get all data for this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetMemberData(Steamworks.Friend,System.String)"> + <summary> + Gets per-user metadata for someone in this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetMemberData(System.String,System.String)"> + <summary> + Sets per-user metadata (for the local user implicitly) + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatString(System.String)"> + <summary> + Sends a string to the chat room + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatBytes(System.Byte[])"> + <summary> + Sends bytes the the chat room + this isn't exposed because there's no way to read raw bytes atm, + and I figure people can send json if they want something more advanced + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Refresh"> + <summary> + Refreshes metadata for a lobby you're not necessarily in right now + you never do this for lobbies you're a member of, only if your + this will send down all the metadata associated with a lobby + this is an asynchronous call + returns false if the local user is not connected to the Steam servers + results will be returned by a LobbyDataUpdate_t callback + if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MaxMembers"> + <summary> + Max members able to join this lobby. Cannot be over 250. + Can only be set by the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(Steamworks.SteamId)"> + <summary> + [SteamID variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(System.String,System.UInt16)"> + <summary> + [IP/Port variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetGameServer(System.UInt32@,System.UInt16@,Steamworks.SteamId@)"> + <summary> + Gets the details of the lobby's game server, if set. Returns true if the lobby is + valid and has a server set, otherwise returns false. + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Owner"> + <summary> + You must be the lobby owner to set the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.IsOwnedBy(Steamworks.SteamId)"> + <summary> + Check if the specified SteamId owns the lobby + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceClose"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceFar"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceWorldwide"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithKeyValue(System.String,System.String)"> + <summary> + Filter by specified key/value pair; string parameters + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithLower(System.String,System.Int32)"> + <summary> + Numerical filter where value is less than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithHigher(System.String,System.Int32)"> + <summary> + Numerical filter where value is greater than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must be equal to the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithNotEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must not equal the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.AddNumericalFilter(System.String,System.Int32,Steamworks.LobbyComparison)"> + <summary> + Test key, initialize numerical filter list if necessary, then add new numerical filter + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.OrderByNear(System.String,System.Int32)"> + <summary> + Order filtered results according to key/values nearest the provided key/value pair. + Can specify multiple near value filters; each successive filter is lower priority than the previous. + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithSlotsAvailable(System.Int32)"> + <summary> + returns only lobbies with the specified number of slots available + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithMaxResults(System.Int32)"> + <summary> + sets how many results to return, the lower the count the faster it is to download the lobby results + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.RequestAsync"> + <summary> + Run the query, get the matching lobbies + </summary> + </member> + <member name="T:Steamworks.Data.OutgoingPacket"> + <summary> + A server query packet. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Address"> + <summary> + Target IP address + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Port"> + <summary> + Target port + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Data"> + <summary> + This data is pooled. Make a copy if you don't use it immediately. + This buffer is also quite large - so pay attention to Size. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Size"> + <summary> + Size of the data + </summary> + </member> + <member name="T:Steamworks.Data.RemotePlaySession"> + <summary> + Represents a RemotePlaySession from the SteamRemotePlay interface + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.IsValid"> + <summary> + Returns true if this session was valid when created. This will stay true even + after disconnection - so be sure to watch SteamRemotePlay.OnSessionDisconnected + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.SteamId"> + <summary> + Get the SteamID of the connected user + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.ClientName"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.FormFactor"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagUser(Steamworks.SteamId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.SetLocation(System.String)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagPublishedFile(Steamworks.Data.PublishedFileId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="P:Steamworks.Data.ServerInfo.Tags"> + <summary> + Gets the individual tags for this server + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToHistory"> + <summary> + Add this server to our history list + If we're already in the history list, weill set the last played time to now + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.QueryRulesAsync"> + <summary> + If this server responds to source engine style queries, we'll be able to get a list of rules here + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromHistory"> + <summary> + Remove this server from our history list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToFavourites"> + <summary> + Add this server to our favourite list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromFavourites"> + <summary> + Remove this server from our favourite list + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultStatus(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Find out the status of an asynchronous inventory result handle. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultItems(Steamworks.Data.SteamInventoryResult_t,Steamworks.Data.SteamItemDetails_t[],System.UInt32@)"> + <summary> + Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultTimestamp(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.CheckResultSteamID(Steamworks.Data.SteamInventoryResult_t,Steamworks.SteamId)"> + <summary> + Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.DestroyResult(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Destroys a result handle and frees all associated memory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetAllItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + Captures the entire state of the current users Steam inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetItemsByID(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId@,System.UInt32)"> + <summary> + Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GrantPromoItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only). + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.ConsumeItem(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId,System.UInt32)"> + <summary> + ConsumeItem() removes items from the inventory permanently. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.SendItemDropHeartbeat"> + <summary> + Deprecated method. Playtime accounting is performed on the Steam servers. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.TriggerItemDrop(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryDefId)"> + <summary> + Playtime credit must be consumed and turned into item drops by your game. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.LoadItemDefinitions"> + <summary> + LoadItemDefinitions triggers the automatic load and refresh of item definitions. + </summary> + </member> + <member name="M:Steamworks.ISteamUserStats.DownloadLeaderboardEntriesForUsers(Steamworks.Data.SteamLeaderboard_t,Steamworks.SteamId[],System.Int32)"> + <summary> + Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.Interface"> + <summary> + An optional interface to use instead of deriving + </summary> + </member> + <member name="F:Steamworks.ConnectionManager.Connection"> + <summary> + The actual connection we're managing + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.ConnectionInfo"> + <summary> + The last received ConnectionInfo + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We're trying to connect! + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We started connecting to this guy + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + We got disconnected + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnMessage(System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Must call Accept or Close on the connection within a second or so + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection leaves + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnMessage(Steamworks.Data.Connection,Steamworks.Data.NetIdentity,System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message from a connection + </summary> + </member> + <member name="T:Steamworks.SocketManager"> + <summary> + Used as a base to create your networking server. This creates a socket + and listens/communicates with multiple queries. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Default behaviour is to accept every connection + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="P:Steamworks.ServerList.Base.AppId"> + <summary> + Which app we're querying. Defaults to the current app. + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnChanges"> + <summary> + When a new server is added, this function will get called + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnResponsiveServer"> + <summary> + Called for every responsive server + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Responsive"> + <summary> + A list of servers that responded. If you're only interested in servers that responded since you + last updated, then simply clear this list. + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Unresponsive"> + <summary> + A list of servers that were in the master list but didn't respond. + </summary> + </member> + <member name="M:Steamworks.ServerList.Base.RunQueryAsync(System.Single)"> + <summary> + Query the server list. Task result will be true when finished + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamApps"> + <summary> + Exposes a wide range of information and actions for applications and Downloadable Content (DLC). + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnDlcInstalled"> + <summary> + posted after the user gains ownership of DLC and that DLC is installed + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnNewLaunchParameters"> + <summary> + posted after the user gains executes a Steam URL with command line or query parameters + such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc + while the game is already running. The new params can be queried + with GetLaunchQueryParam and GetLaunchCommandLine + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribed"> + <summary> + Checks if the active user is subscribed to the current App ID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFamilySharing"> + <summary> + Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsLowVoilence"> + <summary> + Checks if the license owned by the user provides low violence depots. + Low violence depots are useful for copies sold in countries that have content restrictions + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsCybercafe"> + <summary> + Checks whether the current App ID license is for Cyber Cafes. + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsVACBanned"> + <summary> + CChecks if the user has a VAC ban on their account + </summary> + </member> + <member name="P:Steamworks.SteamApps.GameLanguage"> + <summary> + Gets the current language that the user has set. + This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AvailableLanguages"> + <summary> + Gets a list of the languages the current app supports. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsSubscribedToApp(Steamworks.AppId)"> + <summary> + Checks if the active user is subscribed to a specified AppId. + Only use this if you need to check ownership of another game related to yours, a demo for example. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsDlcInstalled(Steamworks.AppId)"> + <summary> + Checks if the user owns a specific DLC and if the DLC is installed + </summary> + </member> + <member name="M:Steamworks.SteamApps.PurchaseTime(Steamworks.AppId)"> + <summary> + Returns the time of the purchase of the app + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFreeWeekend"> + <summary> + Checks if the user is subscribed to the current app through a free weekend + This function will return false for users who have a retail or other type of license + Before using, please ask your Valve technical contact how to package and secure your free weekened + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcInformation"> + <summary> + Returns metadata for all available DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.UninstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="P:Steamworks.SteamApps.CurrentBetaName"> + <summary> + Returns null if we're not on a beta branch, else the name of the branch + </summary> + </member> + <member name="M:Steamworks.SteamApps.MarkContentCorrupt(System.Boolean)"> + <summary> + Allows you to force verify game content on next launch. + + If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), + you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit. + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstalledDepots(Steamworks.AppId)"> + <summary> + Gets a list of all installed depots for a given App ID in mount order + </summary> + </member> + <member name="M:Steamworks.SteamApps.AppInstallDir(Steamworks.AppId)"> + <summary> + Gets the install folder for a specific AppID. + This works even if the application is not installed, based on where the game would be installed with the default Steam library location. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsAppInstalled(Steamworks.AppId)"> + <summary> + The app may not actually be owned by the current user, they may have it left over from a free weekend, etc. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AppOwner"> + <summary> + Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed.. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetLaunchParam(System.String)"> + <summary> + Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. + Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. + Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + but it is advised that you not param names beginning with an underscore for your own features. + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcDownloadProgress(Steamworks.AppId)"> + <summary> + Gets the download progress for optional DLC. + </summary> + </member> + <member name="P:Steamworks.SteamApps.BuildId"> + <summary> + Gets the buildid of this app, may change at any time based on backend updates to the game. + Defaults to 0 if you're not running a build downloaded from steam. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetFileDetailsAsync(System.String)"> + <summary> + Asynchronously retrieves metadata details about a specific file in the depot manifest. + Currently provides: + </summary> + </member> + <member name="P:Steamworks.SteamApps.CommandLine"> + <summary> + Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. + This method of passing a connect string (used when joining via rich presence, accepting an + invite, etc) is preferable to passing the connect string on the operating system command + line, which is a security risk. In order for rich presence joins to go through this + path and not be placed on the OS command line, you must set a value in your app's + configuration on Steam. Ask Valve for help with this. + </summary> + </member> + <member name="M:Steamworks.SteamClient.Init(System.UInt32,System.Boolean)"> + <summary> + Initialize the steam client. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="P:Steamworks.SteamClient.IsLoggedOn"> + <summary> + Checks if the current user's Steam client is connected to the Steam servers. + If it's not then no real-time services provided by the Steamworks API will be enabled. The Steam + client will automatically be trying to recreate the connection as often as possible. When the + connection is restored a SteamServersConnected_t callback will be posted. + You usually don't need to check for this yourself. All of the API calls that rely on this will + check internally. Forcefully disabling stuff when the player loses access is usually not a + very good experience for the player and you could be preventing them from accessing APIs that do not + need a live connection to Steam. + </summary> + </member> + <member name="P:Steamworks.SteamClient.SteamId"> + <summary> + Gets the Steam ID of the account currently logged into the Steam client. This is + commonly called the 'current user', or 'local user'. + A Steam ID is a unique identifier for a Steam accounts, Steam groups, Lobbies and Chat + rooms, and used to differentiate users in all parts of the Steamworks API. + </summary> + </member> + <member name="P:Steamworks.SteamClient.Name"> + <summary> + returns the local players name - guaranteed to not be NULL. + this is the same name as on the users community profile page + </summary> + </member> + <member name="P:Steamworks.SteamClient.State"> + <summary> + gets the status of the current user + </summary> + </member> + <member name="P:Steamworks.SteamClient.AppId"> + <summary> + returns the appID of the current process + </summary> + </member> + <member name="M:Steamworks.SteamClient.RestartAppIfNecessary(System.UInt32)"> + <summary> + Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't + this returns true then it starts the Steam client if required and launches your game again through it, + and you should quit your process as soon as possible. This effectively runs steam://run/AppId so it + may not relaunch the exact executable that called it, as it will always relaunch from the version + installed in your Steam library folder/ + Note that during development, when not launching via Steam, this might always return true. + </summary> + </member> + <member name="M:Steamworks.SteamClient.ValidCheck"> + <summary> + Called in interfaces that rely on this being initialized + </summary> + </member> + <member name="T:Steamworks.SteamFriends"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnChatMessage"> + <summary> + Called when chat message has been received from a friend. You'll need to turn on + ListenForFriendsMessages to recieve this. (friend, msgtype, message) + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnPersonaStateChange"> + <summary> + called when a friends' status changes + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameRichPresenceJoinRequested"> + <summary> + Called when the user tries to join a game from their friends list + rich presence will have been set with the "connect" key which is set here + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameOverlayActivated"> + <summary> + Posted when game overlay activates or deactivates + the game can use this to be pause or resume single player games + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameServerChangeRequested"> + <summary> + Called when the user tries to join a different game server from their friends list + game client should attempt to connect to specified server when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameLobbyJoinRequested"> + <summary> + Called when the user tries to join a lobby from their friends list + game client should attempt to connect to specified lobby when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnFriendRichPresenceUpdate"> + <summary> + Callback indicating updated data about friends rich presence information + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenOverlay(System.String)"> + <summary> + The dialog to open. Valid options are: + "friends", + "community", + "players", + "settings", + "officialgamegroup", + "stats", + "achievements". + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenUserOverlay(Steamworks.SteamId,System.String)"> + <summary> + "steamid" - Opens the overlay web browser to the specified user or groups profile. + "chat" - Opens a chat window to the specified user, or joins the group chat. + "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API. + "stats" - Opens the overlay web browser to the specified user's stats. + "achievements" - Opens the overlay web browser to the specified user's achievements. + "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend. + "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend. + "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite. + "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenStoreOverlay(Steamworks.AppId)"> + <summary> + Activates the Steam Overlay to the Steam store page for the provided app. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenWebOverlay(System.String,System.Boolean)"> + <summary> + Activates Steam Overlay web browser directly to the specified URL. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenGameInviteOverlay(Steamworks.SteamId)"> + <summary> + Activates the Steam Overlay to open the invite dialog. Invitations sent from this dialog will be for the provided lobby. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetPlayedWith(Steamworks.SteamId)"> + <summary> + Mark a target user as 'played with'. + NOTE: The current user must be in game with the other player for the association to work. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.RequestUserInformation(Steamworks.SteamId,System.Boolean)"> + <summary> + Requests the persona name and optionally the avatar of a specified user. + NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them. + returns true if we're fetching the data, false if we already have it + </summary> + </member> + <member name="M:Steamworks.SteamFriends.GetRichPresence(System.String)"> + <summary> + Find a rich presence value by key for current user. Will be null if not found. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetRichPresence(System.String,System.String)"> + <summary> + Sets a rich presence value by key for current user. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.ClearRichPresence"> + <summary> + Clears all of the current user's rich presence data. + </summary> + </member> + <member name="P:Steamworks.SteamFriends.ListenForFriendsMessages"> + <summary> + Listens for Steam friends chat messages. + You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. + After enabling this you will receive callbacks when ever the user receives a chat message. + </summary> + </member> + <member name="M:Steamworks.SteamInput.RunFrame"> + <summary> + You shouldn't really need to call this because it get called by RunCallbacks on SteamClient + but Valve think it might be a nice idea if you call it right before you get input info - + just to make sure the info you're getting is 100% up to date. + </summary> + </member> + <member name="P:Steamworks.SteamInput.Controllers"> + <summary> + Return a list of connected controllers. + </summary> + </member> + <member name="M:Steamworks.SteamInput.GetDigitalActionGlyph(Steamworks.Controller,System.String)"> + <summary> + Return an absolute path to the PNG image glyph for the provided digital action name. The current + action set in use for the controller will be used for the lookup. You should cache the result and + maintain your own list of loaded PNG assets. + </summary> + <param name="controller"></param> + <param name="action"></param> + <returns></returns> + </member> + <member name="T:Steamworks.SteamInventory"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamInventory.LoadItemDefinitions"> + <summary> + Call this if you're going to want to access definition information. You should be able to get + away with calling this once at the start if your game, assuming your items don't change all the time. + This will trigger OnDefinitionsUpdated at which point Definitions should be set. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.WaitForDefinitions(System.Single)"> + <summary> + Will call LoadItemDefinitions and wait until Definitions is not null + </summary> + </member> + <member name="M:Steamworks.SteamInventory.FindDefinition(Steamworks.Data.InventoryDefId)"> + <summary> + Try to find the definition that matches this definition ID. + Uses a dictionary so should be about as fast as possible. + </summary> + </member> + <member name="P:Steamworks.SteamInventory.Items"> + <summary> + We will try to keep this list of your items automatically up to date. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItems"> + <summary> + Update the list of Items[] + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItemsAsync"> + <summary> + Get all items and return the InventoryResult + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GenerateItemAsync(Steamworks.InventoryDef,System.Int32)"> + <summary> + This is used to grant a specific item to the user. This should + only be used for development prototyping, from a trusted server, + or if you don't care about hacked clients granting arbitrary items. + This call can be disabled by a setting on Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem.Amount[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.DeserializeAsync(System.Byte[],System.Int32)"> + <summary> + Deserializes a result set and verifies the signature bytes. + This call has a potential soft-failure mode where the Result is expired, it will + still succeed in this mode.The "expired" + result could indicate that the data may be out of date - not just due to timed + expiration( one hour ), but also because one of the items in the result set may + have been traded or consumed since the result set was generated.You could compare + the timestamp from GetResultTimestamp to ISteamUtils::GetServerRealTime to determine + how old the data is. You could simply ignore the "expired" result code and + continue as normal, or you could request the player with expired data to send + an updated result set. + You should call CheckResultSteamID on the result handle when it completes to verify + that a remote player is not pretending to have a different user's inventory. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GrantPromoItemsAsync"> + <summary> + Grant all promotional items the user is eligible for + </summary> + </member> + <member name="M:Steamworks.SteamInventory.TriggerItemDropAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger an item drop for this user. This is for timed drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.AddPromoItemAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger a promo item drop. You can call this at startup, it won't + give users multiple promo drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.StartPurchaseAsync(Steamworks.InventoryDef[])"> + <summary> + Start buying a cart load of items. This will return a positive result is the purchase has + begun. You should listen out for SteamUser.OnMicroTxnAuthorizationResponse for a success. + </summary> + </member> + <member name="T:Steamworks.SteamMatchmaking"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="P:Steamworks.SteamMatchmaking.MaxLobbyKeyLength"> + <summary> + Maximum number of characters a lobby metadata key can be + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyInvite"> + <summary> + Someone invited you to a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyEntered"> + <summary> + You joined a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyCreated"> + <summary> + You created a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyGameCreated"> + <summary> + A game server has been associated with the lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyDataChanged"> + <summary> + The lobby metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDataChanged"> + <summary> + The lobby member metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberJoined"> + <summary> + The lobby member joined + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberLeave"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDisconnected"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberKicked"> + <summary> + The lobby member was kicked. The 3rd param is the user that kicked them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberBanned"> + <summary> + The lobby member was banned. The 3rd param is the user that banned them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnChatMessage"> + <summary> + A chat message was recieved from a member of a lobby + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.CreateLobbyAsync(System.Int32)"> + <summary> + Creates a new invisible lobby. Call lobby.SetPublic to take it online. + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.JoinLobbyAsync(Steamworks.SteamId)"> + <summmary> + Attempts to directly join the specified lobby + </summmary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetFavoriteServers"> + <summary> + Get a list of servers that are on your favorites list + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetHistoryServers"> + <summary> + Get a list of servers that you have added to your play history + </summary> + </member> + <member name="T:Steamworks.SteamMatchmakingServers"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="T:Steamworks.SteamMusic"> + <summary> + Functions to control music playback in the steam client. + This gives games the opportunity to do things like pause the music or lower the volume, + when an important cut scene is shown, and start playing afterwards. + Nothing uses Steam Music though so this can probably get fucked + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnPlaybackChanged"> + <summary> + Playback status changed + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnVolumeChanged"> + <summary> + Volume changed, parameter is new volume + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsEnabled"> + <summary> + Checks if Steam Music is enabled + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsPlaying"> + <summary> + true if a song is currently playing, paused, or queued up to play; otherwise false. + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Status"> + <summary> + Gets the current status of the Steam Music player + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayPrevious"> + <summary> + Have the Steam Music player play the previous song. + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayNext"> + <summary> + Have the Steam Music player skip to the next song + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Volume"> + <summary> + Gets/Sets the current volume of the Steam Music player + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PSessionRequest"> + <summary> + This SteamId wants to send you a message. You should respond by calling AcceptP2PSessionWithUser + if you want to recieve their messages + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PConnectionFailed"> + <summary> + Called when packets can't get through to the specified user. + All queued packets unsent at this point will be dropped, further attempts + to send will retry making the connection (but will be dropped if we fail again). + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AcceptP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called in response to a OnP2PSessionRequest + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AllowP2PPacketRelay(System.Boolean)"> + <summary> + Allow or disallow P2P connects to fall back on Steam server relay if direct + connection or NAT traversal can't be established. Applies to connections + created after setting or old connections that need to reconnect. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.CloseP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called when you're done communicating with a user, as this will + free up all of the resources allocated for the connection under-the-hood. + If the remote user tries to send data to you again, a new OnP2PSessionRequest + callback will be posted + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.IsP2PPacketAvailable(System.Int32)"> + <summary> + Checks if a P2P packet is available to read, and gets the size of the message if there is one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte[],System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte*,System.UInt32,System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte[],System.Int32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte*,System.UInt32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket``1(Steamworks.Data.NetAddress)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6) + + To use this derive a class from SocketManager and override as much as you want. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket(Steamworks.Data.NetAddress,Steamworks.ISocketManager)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6). + + To use this you should pass a class that inherits ISocketManager. You can use + SocketManager to get connections and send messages, but the ISocketManager class + will received all the appropriate callbacks. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal``1(Steamworks.Data.NetAddress)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal(Steamworks.Data.NetAddress,Steamworks.IConnectionManager)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateRelaySocket``1(System.Int32)"> + <summary> + Creates a server that will be relayed via Valve's network (hiding the IP and improving ping) + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectRelay``1(Steamworks.SteamId,System.Int32)"> + <summary> + Connect to a relay server + </summary> + </member> + <member name="T:Steamworks.SteamNetworkingUtils"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamNetworkingUtils.OnDebugOutput"> + <summary> + A function to receive debug network information on. This will do nothing + unless you set DebugLevel to something other than None. + + You should set this to an appropriate level instead of setting it to the highest + and then filtering it by hand because a lot of energy is used by creating the strings + and your frame rate will tank and you won't know why. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Status"> + <summary> + The latest available status gathered from the SteamRelayNetworkStatus callback + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.InitRelayNetworkAccess"> + <summary> + If you know that you are going to be using the relay network (for example, + because you anticipate making P2P connections), call this to initialize the + relay network. If you do not call this, the initialization will + be delayed until the first time you use a feature that requires access + to the relay network, which will delay that first access. + + You can also call this to force a retry if the previous attempt has failed. + Performing any action that requires access to the relay network will also + trigger a retry, and so calling this function is never strictly necessary, + but it can be useful to call it a program launch time, if access to the + relay network is anticipated. + + Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + callbacks to know when initialization has completed. + Typically initialization completes in a few seconds. + + Note: dedicated servers hosted in known data centers do *not* need + to call this, since they do not make routing decisions. However, if + the dedicated server will be using P2P functionality, it will act as + a "client" and this should be called. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.LocalPingLocation"> + <summary> + Return location info for the current host. + + It takes a few seconds to initialize access to the relay network. If + you call this very soon after startup the data may not be available yet. + + This always return the most up-to-date information we have available + right now, even if we are in the middle of re-calculating ping times. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + <summary> + Same as PingLocation.EstimatePingTo, but assumes that one location is the local host. + This is a bit faster, especially if you need to calculate a bunch of + these in a loop to find the fastest one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.WaitForPingDataAsync(System.Single)"> + <summary> + If you need ping information straight away, wait on this. It will return + immediately if you already have up to date ping data + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.ConnectionTimeout"> + <summary> + Timeout value (in ms) to use when first connecting + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Timeout"> + <summary> + Timeout value (in ms) to use after connection is established + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.SendBufferSize"> + <summary> + Upper limit of buffered pending bytes to be sent. + If this is reached SendMessage will return LimitExceeded. + Default is 524288 bytes (512k) + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.DebugLevel"> + <summary> + Get Debug Information via OnDebugOutput event + + Except when debugging, you should only use NetDebugOutput.Msg + or NetDebugOutput.Warning. For best performance, do NOT + request a high detail level and then filter out messages in the callback. + + This incurs all of the expense of formatting the messages, which are then discarded. + Setting a high priority value (low numeric value) here allows the library to avoid + doing this work. + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugLevel"> + <summary> + So we can remember and provide a Get for DebugLEvel + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugFunc"> + <summary> + We need to keep the delegate around until it's not used anymore + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OnDebugMessage(Steamworks.NetDebugOutput,System.IntPtr)"> + <summary> + This can be called from other threads - so we're going to queue these up and process them in a safe place. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OutputDebugMessages"> + <summary> + Called regularly from the Dispatch loop so we can provide a timely + stream of messages. + </summary> + </member> + <member name="T:Steamworks.SteamParental"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamParental.OnSettingsChanged"> + <summary> + Parental Settings Changed + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockEnabled"> + <summary> + + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockLocked"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsAppBlocked(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsAppInBlockList(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsFeatureBlocked(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsFeatureInBlockList(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="T:Steamworks.SteamParties"> + <summary> + This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. + Tell Steam the number of player spots that are available for your party, and a join-game string, and it + will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. + Adjust the number of open slots if other players join through alternate matchmaking methods. + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnBeaconLocationsUpdated"> + <summary> + The list of possible Party beacon locations has changed + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnActiveBeaconsUpdated"> + <summary> + The list of active beacons may have changed + </summary> + </member> + <member name="T:Steamworks.SteamRemotePlay"> + <summary> + Functions that provide information about Steam Remote Play sessions, streaming your game content to another computer or to a Steam Link app or hardware. + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionConnected"> + <summary> + Called when a session is connected + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionDisconnected"> + <summary> + Called when a session becomes disconnected + </summary> + </member> + <member name="P:Steamworks.SteamRemotePlay.SessionCount"> + <summary> + Get the number of currently connected Steam Remote Play sessions + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.GetSession(System.Int32)"> + <summary> + Get the currently connected Steam Remote Play session ID at the specified index. + IsValid will return false if it's out of bounds + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.SendInvite(Steamworks.SteamId)"> + <summary> + Invite a friend to Remote Play Together + This returns false if the invite can't be sent + </summary> + </member> + <member name="T:Steamworks.SteamRemoteStorage"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileWrite(System.String,System.Byte[])"> + <summary> + Creates a new file, writes the bytes to the file, and then closes the file. + If the target file already exists, it is overwritten + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileRead(System.String)"> + <summary> + Opens a binary file, reads the contents of the file into a byte array, and then closes the file. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileExists(System.String)"> + <summary> + Checks whether the specified file exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FilePersisted(System.String)"> + <summary> + Checks if a specific file is persisted in the steam cloud. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileTime(System.String)"> + <summary> + Gets the specified file's last modified date/time. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileSize(System.String)"> + <summary> + Gets the specified files size in bytes. 0 if not exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileForget(System.String)"> + <summary> + Deletes the file from remote storage, but leaves it on the local disk and remains accessible from the API. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileDelete(System.String)"> + <summary> + Deletes a file from the local disk, and propagates that delete to the cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaBytes"> + <summary> + Number of bytes total + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaUsedBytes"> + <summary> + Number of bytes used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaRemainingBytes"> + <summary> + Number of bytes remaining until your quota is used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabled"> + <summary> + returns true if IsCloudEnabledForAccount AND IsCloudEnabledForApp + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForAccount"> + <summary> + Checks if the account wide Steam Cloud setting is enabled for this user + or if they disabled it in the Settings->Cloud dialog. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForApp"> + <summary> + Checks if the per game Steam Cloud setting is enabled for this user + or if they disabled it in the Game Properties->Update dialog. + + This must only ever be set as the direct result of the user explicitly + requesting that it's enabled or not. This is typically accomplished with + a checkbox within your in-game options + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.FileCount"> + <summary> + Gets the total number of local files synchronized by Steam Cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.Files"> + <summary> + Get a list of filenames synchronized by Steam Cloud + </summary> + </member> + <member name="T:Steamworks.SteamScreenshots"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotRequested"> + <summary> + A screenshot has been requested by the user from the Steam screenshot hotkey. + This will only be called if Hooked is true, in which case Steam + will not take the screenshot itself. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotReady"> + <summary> + A screenshot successfully written or otherwise added to the library and can now be tagged. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotFailed"> + <summary> + A screenshot attempt failed + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.WriteScreenshot(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.AddScreenshot(System.String,System.String,System.Int32,System.Int32)"> + <summary> + Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + JPEG, TGA, and PNG formats are supported. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.TriggerScreenshot"> + <summary> + Causes the Steam overlay to take a screenshot. + If screenshots are being hooked by the game then a + ScreenshotRequested callback is sent back to the game instead. + </summary> + </member> + <member name="P:Steamworks.SteamScreenshots.Hooked"> + <summary> + Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or if the game handles them. + Hooking is disabled by default, and only ever enabled if you do so with this function. + If the hooking is enabled, then the ScreenshotRequested_t callback will be sent if the user presses the hotkey or + when TriggerScreenshot is called, and then the game is expected to call WriteScreenshot or AddScreenshotToLibrary in response. + </summary> + </member> + <member name="T:Steamworks.SteamServer"> + <summary> + Provides the core of the Steam Game Servers API + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnValidateAuthTicketResponse"> + <summary> + User has been authed or rejected + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the server now is logged on and has a working connection to the Steam master server. + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServerConnectFailure"> + <summary> + This will occur periodically if the Steam client is not connected, and has failed when retrying to establish a connection (result, stilltrying) + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersDisconnected"> + <summary> + Disconnected from Steam + </summary> + </member> + <member name="M:Steamworks.SteamServer.Init(Steamworks.AppId,Steamworks.SteamServerInit,System.Boolean)"> + <summary> + Initialize the steam server. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="M:Steamworks.SteamServer.RunCallbacks"> + <summary> + Run the callbacks. This is also called in Async callbacks. + </summary> + </member> + <member name="P:Steamworks.SteamServer.DedicatedServer"> + <summary> + Sets whether this should be marked as a dedicated server. + If not, it is assumed to be a listen server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MaxPlayers"> + <summary> + Gets or sets the current MaxPlayers. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.BotCount"> + <summary> + Gets or sets the current BotCount. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MapName"> + <summary> + Gets or sets the current Map Name. + </summary> + </member> + <member name="P:Steamworks.SteamServer.ModDir"> + <summary> + Gets or sets the current ModDir + </summary> + </member> + <member name="P:Steamworks.SteamServer.Product"> + <summary> + Gets the current product + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameDescription"> + <summary> + Gets or sets the current Product + </summary> + </member> + <member name="P:Steamworks.SteamServer.ServerName"> + <summary> + Gets or sets the current ServerName + </summary> + </member> + <member name="P:Steamworks.SteamServer.Passworded"> + <summary> + Set whether the server should report itself as passworded + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameTags"> + <summary> + Gets or sets the current GameTags. This is a comma seperated list of tags for this server. + When querying the server list you can filter by these tags. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOnAnonymous"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOff"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="P:Steamworks.SteamServer.LoggedOn"> + <summary> + Returns true if the server is connected and registered with the Steam master server + You should have called LogOnAnonymous etc on startup. + </summary> + </member> + <member name="P:Steamworks.SteamServer.PublicIp"> + <summary> + To the best of its ability this tries to get the server's + current public ip address. Be aware that this is likely to return + null for the first few seconds after initialization. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeats"> + <summary> + Enable or disable heartbeats, which are sent regularly to the master server. + Enabled by default. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeatRate"> + <summary> + Set heartbeat interval, if automatic heartbeats are enabled. + You can leave this at the default. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ForceHeartbeat"> + <summary> + Force send a heartbeat to the master server instead of waiting + for the next automatic update (if you've left them enabled) + </summary> + </member> + <member name="M:Steamworks.SteamServer.UpdatePlayer(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Update this connected player's information. You should really call this + any time a player's name or score changes. This keeps the information shown + to server queries up to date. + </summary> + </member> + <member name="M:Steamworks.SteamServer.SetKey(System.String,System.String)"> + <summary> + Sets a Key Value. These can be anything you like, and are accessible + when querying servers from the server list. + + Information describing gamemodes are common here. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ClearKeys"> + <summary> + Remove all key values + </summary> + </member> + <member name="M:Steamworks.SteamServer.BeginAuthSession(System.Byte[],Steamworks.SteamId)"> + <summary> + Start authorizing a ticket. This user isn't authorized yet. Wait for a call to OnAuthChange. + </summary> + </member> + <member name="M:Steamworks.SteamServer.EndSession(Steamworks.SteamId)"> + <summary> + Forget this guy. They're no longer in the game. + </summary> + </member> + <member name="M:Steamworks.SteamServer.GetOutgoingPacket(Steamworks.Data.OutgoingPacket@)"> + <summary> + If true, Steam wants to send a packet. You should respond by sending + this packet in an unconnected way to the returned Address and Port. + </summary> + <param name="packet">Packet to send. The Data passed is pooled - so use it immediately.</param> + <returns>True if we want to send a packet</returns> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.Byte[],System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.IntPtr,System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.UserHasLicenseForApp(Steamworks.SteamId,Steamworks.AppId)"> + <summary> + Does the user own this app (which could be DLC) + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.RequestUserStatsAsync(Steamworks.SteamId)"> + <summary> + Downloads stats for the user + If the user has no stats will return fail + these stats will only be auto-updated for clients playing on the server + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Unlocks the specified achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.ClearAchievement(Steamworks.SteamId,System.String)"> + <summary> + Resets the unlock status of an achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Return true if available, exists and unlocked + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.StoreUserStats(Steamworks.SteamId)"> + <summary> + Once you've set a stat change on a user you need to commit your changes. + You can do that using this function. The callback will let you know if + your action succeeded, but most of the time you can fire and forget. + </summary> + </member> + <member name="T:Steamworks.SteamUGC"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUGC.OnDownloadItemResult"> + <summary> + Posted after Download call + </summary> + </member> + <member name="M:Steamworks.SteamUGC.Download(Steamworks.Data.PublishedFileId,System.Boolean)"> + <summary> + Start downloading this item. You'll get notified of completion via OnDownloadItemResult. + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="highPriority">If true this should go straight to the top of the download list</param> + <returns>true if nothing went wrong and the download is started</returns> + </member> + <member name="M:Steamworks.SteamUGC.DownloadAsync(Steamworks.Data.PublishedFileId,System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Will attempt to download this item asyncronously - allowing you to instantly react to its installation + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="progress">An optional callback</param> + <param name="ct">Allows you to send a message to cancel the download anywhere during the process</param> + <param name="milisecondsUpdateDelay">How often to call the progress function</param> + <returns>true if downloaded and installed correctly</returns> + </member> + <member name="M:Steamworks.SteamUGC.QueryFileAsync(Steamworks.Data.PublishedFileId)"> + <summary> + Utility function to fetch a single item. Internally this uses Ugc.FileQuery - + which you can use to query multiple items if you need to. + </summary> + </member> + <member name="T:Steamworks.SteamUser"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the Steam client now has a working connection to the Steam servers. + Usually this will have occurred before the game has launched, and should only be seen if the + user has dropped connection due to a networking issue or a Steam server update. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServerConnectFailure"> + <summary> + Called when a connection attempt has failed. + This will occur periodically if the Steam client is not connected, + and has failed when retrying to establish a connection. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersDisconnected"> + <summary> + Called if the client has lost connection to the Steam servers. + Real-time services will be disabled until a matching OnSteamServersConnected has been posted. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnClientGameServerDeny"> + <summary> + Sent by the Steam server to the client telling it to disconnect from the specified game server, + which it may be in the process of or already connected to. + The game client should immediately disconnect upon receiving this message. + This can usually occur if the user doesn't have rights to play on the game server. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnLicensesUpdated"> + <summary> + Called whenever the users licenses (owned packages) changes. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnValidateAuthTicketResponse"> + <summary> + Called when an auth ticket has been validated. + The first parameter is the steamid of this user + The second is the Steam ID that owns the game, this will be different from the first + if the game is being borrowed via Steam Family Sharing + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGetAuthSessionTicketResponse"> + <summary> + Used internally for GetAuthSessionTicketAsync + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnMicroTxnAuthorizationResponse"> + <summary> + Called when a user has responded to a microtransaction authorization request. + ( appid, orderid, user authorized ) + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGameWebCallback"> + <summary> + Sent to your game in response to a steam://gamewebcallback/ command from a user clicking a link in the Steam overlay browser. + You can use this to add support for external site signups where you want to pop back into the browser after some web page + signup sequence, and optionally get back some detail about that. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnDurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, + half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.SteamUser.VoiceRecord"> + <summary> + Starts/Stops voice recording. + Once started, use GetAvailableVoice and GetVoice to get the data, and then call StopVoiceRecording + when the user has released their push-to-talk hotkey or the game session has completed. + </summary> + </member> + <member name="P:Steamworks.SteamUser.HasVoiceData"> + <summary> + Returns true if we have voice data waiting to be read + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceData(System.IO.Stream)"> + <summary> + Reads the voice data and returns the number of bytes written. + The compressed data can be transmitted by your application and decoded back into raw audio data using + DecompressVoice on the other side. The compressed data provided is in an arbitrary format and is not meant to be played directly. + This should be called once per frame, and at worst no more than four times a second to keep the microphone input delay as low as + possible. Calling this any less may result in gaps in the returned stream. + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceDataBytes"> + <summary> + Reads the voice data and returns the bytes. You should obviously ideally be using + ReadVoiceData because it won't be creating a new byte array every call. But this + makes it easier to get it working, so let the babies have their bottle. + </summary> + </member> + <member name="M:Steamworks.SteamUser.DecompressVoice(System.IO.Stream,System.Int32,System.IO.Stream)"> + <summary> + Decodes the compressed voice data returned by GetVoice. + The output data is raw single-channel 16-bit PCM audio.The decoder supports any sample rate from 11025 to 48000. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicket"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicketAsync(System.Double)"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + This waits for a positive response from the backend before returning the ticket. This means + the ticket is definitely ready to go as soon as it returns. Will return null if the callback + times out or returns negatively. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsBehindNAT"> + <summary> + Checks if the current users looks like they are behind a NAT device. + This is only valid if the user is connected to the Steam servers and may not catch all forms of NAT. + </summary> + </member> + <member name="P:Steamworks.SteamUser.SteamLevel"> + <summary> + Gets the Steam level of the user, as shown on their Steam community profile. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetStoreAuthUrlAsync(System.String)"> + <summary> + Requests a URL which authenticates an in-game browser for store check-out, and then redirects to the specified URL. + As long as the in-game browser accepts and handles session cookies, Steam microtransaction checkout pages will automatically recognize the user instead of presenting a login page. + NOTE: The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. + NOTE: The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneVerified"> + <summary> + Checks whether the current user has verified their phone number. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsTwoFactorEnabled"> + <summary> + Checks whether the current user has Steam Guard two factor authentication enabled on their account. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneIdentifying"> + <summary> + Checks whether the user's phone number is used to uniquely identify them. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneRequiringVerification"> + <summary> + Checks whether the current user's phone number is awaiting (re)verification. + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync(System.Byte[])"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + If you get a null result from this it's probably because you're calling it too often. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetDurationControl"> + <summary> + Get anti indulgence / duration control + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementIconFetched"> + <summary> + called when the achivement icon is loaded + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsReceived"> + <summary> + called when the latests stats and achievements have been received + from the server + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsStored"> + <summary> + result of a request to store the user stats for a game + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementProgress"> + <summary> + result of a request to store the achievements for a game, or an + "indicate progress" call. If both m_nCurProgress and m_nMaxProgress + are zero, that means the achievement has been fully unlocked + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsUnloaded"> + <summary> + Callback indicating that a user's stats have been unloaded + </summary> + </member> + <member name="P:Steamworks.SteamUserStats.Achievements"> + <summary> + Get the available achievements + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.IndicateAchievementProgress(System.String,System.Int32,System.Int32)"> + <summary> + Show the user a pop-up notification with the current progress toward an achievement. + Will return false if RequestCurrentStats has not completed and successfully returned + its callback, if the achievement doesn't exist/has unpublished changes in the app's + Steamworks Admin page, or if the achievement is unlocked. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.PlayerCountAsync"> + <summary> + Tries to get the number of players currently playing this game. + Or -1 if failed. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.StoreStats"> + <summary> + Send the changed stats and achievements data to the server for permanent storage. + If this fails then nothing is sent to the server. It's advisable to keep trying until the call is successful. + This call can be rate limited. Call frequency should be on the order of minutes, rather than seconds.You should only be calling this during major state changes such as the end of a round, the map changing, or the user leaving a server. This call is required to display the achievement unlock notification dialog though, so if you have called SetAchievement then it's advisable to call this soon after that. + If you have stats or achievements that you have saved locally but haven't uploaded with this function when your application process ends then this function will automatically be called. + You can find additional debug information written to the %steam_install%\logs\stats_log.txt file. + This function returns true upon success if : + RequestCurrentStats has completed and successfully returned its callback AND + the current game has stats associated with it in the Steamworks Partner backend, and those stats are published. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestCurrentStats"> + <summary> + Asynchronously request the user's current stats and achievements from the server. + You must always call this first to get the initial status of stats and achievements. + Only after the resulting callback comes back can you start calling the rest of the stats + and achievement functions for the current user. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestGlobalStatsAsync(System.Int32)"> + <summary> + Asynchronously fetches global stats data, which is available for stats marked as + "aggregated" in the App Admin panel of the Steamworks website. + You must have called RequestCurrentStats and it needs to return successfully via + its callback prior to calling this. + </summary> + <param name="days">How many days of day-by-day history to retrieve in addition to the overall totals. The limit is 60.</param> + <returns>OK indicates success, InvalidState means you need to call RequestCurrentStats first, Fail means the remote call failed</returns> + </member> + <member name="M:Steamworks.SteamUserStats.FindOrCreateLeaderboardAsync(System.String,Steamworks.Data.LeaderboardSort,Steamworks.Data.LeaderboardDisplay)"> + <summary> + Gets a leaderboard by name, it will create it if it's not yet created. + Leaderboards created with this function will not automatically show up in the Steam Community. + You must manually set the Community Name field in the App Admin panel of the Steamworks website. + As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on + the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of + dynamically created leaderboards. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Int32)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Single)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Int32)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Single)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatInt(System.String)"> + <summary> + Get a Int stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatFloat(System.String)"> + <summary> + Get a float stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.ResetAll(System.Boolean)"> + <summary> + Practically wipes the slate clean for this user. If includeAchievements is true, will wipe + any achievements too. + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamUtils"> + <summary> + Interface which provides access to a range of miscellaneous utility functions + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnIpCountryChanged"> + <summary> + The country of the user changed + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnLowBatteryPower"> + <summary> + Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute + The parameter is the number of minutes left + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnSteamShutdown"> + <summary> + Called when Steam wants to shutdown + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnGamepadTextInputDismissed"> + <summary> + Big Picture gamepad text input has been closed. Parameter is true if text was submitted, false if cancelled etc. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceAppActive"> + <summary> + Returns the number of seconds since the application was active + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceComputerActive"> + <summary> + Returns the number of seconds since the user last moved the mouse etc + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamServerTime"> + <summary> + Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IpCountry"> + <summary> + returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + e.g "US" or "UK". + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImageSize(System.Int32,System.UInt32@,System.UInt32@)"> + <summary> + returns true if the image exists, and the buffer was successfully filled out + results are returned in RGBA format + the destination buffer size should be 4 * height * width * sizeof(char) + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImage(System.Int32)"> + <summary> + returns the image in RGBA format + </summary> + </member> + <member name="P:Steamworks.SteamUtils.UsingBatteryPower"> + <summary> + Returns true if we're using a battery (ie, a laptop not plugged in) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.CurrentBatteryPower"> + <summary> + Returns battery power [0-1] + </summary> + </member> + <member name="P:Steamworks.SteamUtils.OverlayNotificationPosition"> + <summary> + Sets the position where the overlay instance for the currently calling game should show notifications. + This position is per-game and if this function is called from outside of a game context it will do nothing. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsOverlayEnabled"> + <summary> + Returns true if the overlay is running and the user can access it. The overlay process could take a few seconds to + start and hook the game process, so this function will initially return false while the overlay is loading. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.DoesOverlayNeedPresent"> + <summary> + Normally this call is unneeded if your game has a constantly running frame loop that calls the + D3D Present API, or OGL SwapBuffers API every frame. + + However, if you have a game that only refreshes the screen on an event driven basis then that can break + the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + need to Present() to the screen any time an even needing a notification happens or when the overlay is + brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.CheckFileSignatureAsync(System.String)"> + <summary> + Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + of the partner site, for example to refuse to load modified executable files. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.ShowGamepadTextInput(Steamworks.GamepadTextInputMode,Steamworks.GamepadTextInputLineMode,System.String,System.Int32,System.String)"> + <summary> + Activates the Big Picture text input dialog which only supports gamepad input + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetEnteredGamepadText"> + <summary> + Returns previously entered text + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamUILanguage"> + <summary> + returns the language the steam client is running in, you probably want + Apps.CurrentGameLanguage instead, this is for very special usage cases + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamRunningInVR"> + <summary> + returns true if Steam itself is running in VR mode + </summary> + </member> + <member name="M:Steamworks.SteamUtils.SetOverlayNotificationInset(System.Int32,System.Int32)"> + <summary> + Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamInBigPictureMode"> + <summary> + returns true if Steam and the Steam Overlay are running in Big Picture mode + Games much be launched through the Steam client to enable the Big Picture overlay. During development, + a game can be added as a non-steam game to the developers library to test this feature + </summary> + </member> + <member name="M:Steamworks.SteamUtils.StartVRDashboard"> + <summary> + ask SteamUI to create and render its OpenVR dashboard + </summary> + </member> + <member name="P:Steamworks.SteamUtils.VrHeadsetStreaming"> + <summary> + Set whether the HMD content will be streamed via Steam In-Home Streaming + If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + (this is useful for games that have asymmetric multiplayer gameplay) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamChinaLauncher"> + <summary> + Returns whether this steam client is a Steam China specific client, vs the global client + </summary> + </member> + <member name="T:Steamworks.SteamVideo"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="P:Steamworks.SteamVideo.IsBroadcasting"> + <summary> + Return true if currently using Steam's live broadcasting + </summary> + </member> + <member name="P:Steamworks.SteamVideo.NumViewers"> + <summary> + If we're broadcasting, will return the number of live viewers + </summary> + </member> + <member name="P:Steamworks.Controller.ActionSet"> + <summary> + Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + our state loops, instead of trying to place it in all of your state transitions. + </summary> + </member> + <member name="M:Steamworks.Controller.GetDigitalState(System.String)"> + <summary> + Returns the current state of the supplied digital game action + </summary> + </member> + <member name="M:Steamworks.Controller.GetAnalogState(System.String)"> + <summary> + Returns the current state of these supplied analog game action + </summary> + </member> + <member name="P:Steamworks.Friend.IsMe"> + <summary> + Returns true if this is the local user + </summary> + </member> + <member name="P:Steamworks.Friend.IsFriend"> + <summary> + Return true if this is a friend + </summary> + </member> + <member name="P:Steamworks.Friend.IsBlocked"> + <summary> + Returns true if you have this user blocked + </summary> + </member> + <member name="P:Steamworks.Friend.IsPlayingThisGame"> + <summary> + Return true if this user is playing the game we're running + </summary> + </member> + <member name="P:Steamworks.Friend.IsOnline"> + <summary> + Returns true if this friend is online + </summary> + </member> + <member name="M:Steamworks.Friend.RequestInfoAsync"> + <summary> + Sometimes we don't know the user's name. This will wait until we have + downloaded the information on this user. + </summary> + </member> + <member name="P:Steamworks.Friend.IsAway"> + <summary> + Returns true if this friend is marked as away + </summary> + </member> + <member name="P:Steamworks.Friend.IsBusy"> + <summary> + Returns true if this friend is marked as busy + </summary> + </member> + <member name="P:Steamworks.Friend.IsSnoozing"> + <summary> + Returns true if this friend is marked as snoozing + </summary> + </member> + <member name="M:Steamworks.Friend.InviteToGame(System.String)"> + <summary> + Invite this friend to the game that we are playing + </summary> + </member> + <member name="M:Steamworks.Friend.SendMessage(System.String)"> + <summary> + Sends a message to a Steam friend. Returns true if success + </summary> + </member> + <member name="M:Steamworks.Friend.RequestUserStatsAsync"> + <summary> + Tries to get download the latest user stats + </summary> + <returns>True if successful, False if failure</returns> + </member> + <member name="M:Steamworks.Friend.GetStatFloat(System.String,System.Single)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetStatInt(System.String,System.Int32)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievement(System.String,System.Boolean)"> + <summary> + Gets a user achievement state. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievementUnlockTime(System.String)"> + <summary> + Gets a the time this achievement was unlocked. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <returns>The time unlocked. If it wasn't unlocked, or you haven't downloaded the stats yet - will return DateTime.MinValue</returns> + </member> + <member name="P:Steamworks.InventoryDef.Name"> + <summary> + Shortcut to call GetProperty( "name" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Description"> + <summary> + Shortcut to call GetProperty( "description" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrl"> + <summary> + Shortcut to call GetProperty( "icon_url" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrlLarge"> + <summary> + Shortcut to call GetProperty( "icon_url_large" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.PriceCategory"> + <summary> + Shortcut to call GetProperty( "price_category" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Type"> + <summary> + Shortcut to call GetProperty( "type" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IsGenerator"> + <summary> + Returns true if this is an item that generates an item, rather + than something that is actual an item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.ExchangeSchema"> + <summary> + Shortcut to call GetProperty( "exchange" ) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipes"> + <summary> + Get a list of exchanges that are available to make this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Marketable"> + <summary> + Shortcut to call GetBoolProperty( "marketable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Tradable"> + <summary> + Shortcut to call GetBoolProperty( "tradable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Created"> + <summary> + Gets the property timestamp + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Modified"> + <summary> + Gets the property modified + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty(System.String)"> + <summary> + Get a specific property by name + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetBoolProperty(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty``1(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Properties"> + <summary> + Gets a list of all properties on this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalPrice"> + <summary> + Returns the price of this item in the local currency (SteamInventory.Currency) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalBasePrice"> + <summary> + If the price has been discounted, LocalPrice will differ from LocalBasePrice + (assumed, this isn't documented) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipesContainingThis"> + <summary> + Return a list of recepies that contain this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Properties"> + <summary> + Only available if the result set was created with the getproperties + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsNoTrade"> + <summary> + This item is account-locked and cannot be traded or given away. + This is an item status flag which is permanently attached to specific item instances + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsRemoved"> + <summary> + The item has been destroyed, traded away, expired, or otherwise invalidated. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsConsumed"> + <summary> + The item quantity has been decreased by 1 via ConsumeItem API. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="M:Steamworks.InventoryItem.ConsumeAsync(System.Int32)"> + <summary> + Consumes items from a user's inventory. If the quantity of the given item goes to zero, it is permanently removed. + Once an item is removed it cannot be recovered.This is not for the faint of heart - if your game implements item removal at all, + a high-friction UI confirmation process is highly recommended.ConsumeItem can be restricted to certain item definitions or fully + blocked via the Steamworks website to minimize support/abuse issues such as the classic "my brother borrowed my laptop and deleted all of my rare items". + </summary> + </member> + <member name="M:Steamworks.InventoryItem.SplitStackAsync(System.Int32)"> + <summary> + Split stack into two items + </summary> + </member> + <member name="M:Steamworks.InventoryItem.AddAsync(Steamworks.InventoryItem,System.Int32)"> + <summary> + Add x units of the target item to this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Acquired"> + <summary> + Will try to return the date that this item was aquired. You need to have for the items + with their properties for this to work. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Origin"> + <summary> + Tries to get the origin property. Need properties for this to work. + Will return a string like "market" + </summary> + </member> + <member name="T:Steamworks.InventoryItem.Amount"> + <summary> + Small utility class to describe an item with a quantity + </summary> + </member> + <member name="T:Steamworks.InventoryRecipe"> + <summary> + A structured description of an item exchange + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.DefinitionId"> + <summary> + The definition ID of the ingredient. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Definition"> + <summary> + If we don't know about this item definition this might be null. + In which case, DefinitionId should still hold the correct id. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Count"> + <summary> + The amount of this item needed. Generally this will be 1. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Result"> + <summary> + The item that this will create. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredients"> + <summary> + The items, with quantity required to create this item. + </summary> + </member> + <member name="M:Steamworks.InventoryResult.BelongsTo(Steamworks.SteamId)"> + <summary> + Checks whether an inventory result handle belongs to the specified Steam ID. + This is important when using Deserialize, to verify that a remote player is not pretending to have a different user's inventory + </summary> + </member> + <member name="M:Steamworks.InventoryResult.Serialize"> + <summary> + Serialized result sets contain a short signature which can't be forged or replayed across different game sessions. + A result set can be serialized on the local client, transmitted to other players via your game networking, and + deserialized by the remote players.This is a secure way of preventing hackers from lying about posessing + rare/high-value items. Serializes a result set with signature bytes to an output buffer.The size of a serialized + result depends on the number items which are being serialized.When securely transmitting items to other players, + it is recommended to use GetItemsByID first to create a minimal result set. + Results have a built-in timestamp which will be considered "expired" after an hour has elapsed.See DeserializeResult + for expiration handling. + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.Owner"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.MetaData"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.JoinAsync"> + <summary> + Will attempt to join the party. If successful will return a connection string. + If failed, will return null + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.OnReservationCompleted(Steamworks.SteamId)"> + <summary> + When a user follows your beacon, Steam will reserve one of the open party slots for them, and send your game a ReservationNotification callback. + When that user joins your party, call OnReservationCompleted to notify Steam that the user has joined successfully + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.CancelReservation(Steamworks.SteamId)"> + <summary> + To cancel a reservation (due to timeout or user input), call this. + Steam will open a new reservation slot. + Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.Destroy"> + <summary> + Turn off the beacon + </summary> + </member> + <member name="T:Steamworks.SteamServerInit"> + <summary> + Used to set up the server. + The variables in here are all required to be set, and can't be changed once the server is created. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.VersionString"> + <summary> + The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. + If you go into the dedicated server tab on steamworks you'll be able to server the latest version. If this version number is + less than that latest version then your server won't show. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.ModDir"> + <summary> + This should be the same directory game where gets installed into. Just the folder name, not the whole path. I.e. "Rust", "Garrysmod". + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.GameDescription"> + <summary> + The game description. Setting this to the full name of your game is recommended. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.DedicatedServer"> + <summary> + Is a dedicated server + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithRandomSteamPort"> + <summary> + Set the Steam quert port + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithQueryShareGamePort"> + <summary> + If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE into usQueryPort, then it causes the game server API to use + "GameSocketShare" mode, which means that the game is responsible for sending and receiving UDP packets for the master + server updater. + + More info about this here: https://partner.steamgames.com/doc/api/ISteamGameServer#HandleIncomingPacket + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewCommunityFile"> + <summary> + Create a Normal Workshop item that can be subscribed to + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewMicrotransactionFile"> + <summary> + Workshop item that is meant to be voted on for the purpose of selling in-game + </summary> + </member> + <member name="F:Steamworks.Ugc.PublishResult.NeedsWorkshopAgreement"> + <summary> + https://partner.steamgames.com/doc/features/workshop/implementation#Legal + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Id"> + <summary> + The actual ID of this file + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Title"> + <summary> + The given title of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Description"> + <summary> + The description of this item, in your local language if available + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Tags"> + <summary> + A list of tags for this item, all lowercase + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CreatorApp"> + <summary> + App Id of the app that created this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ConsumerApp"> + <summary> + App Id of the app that will consume this item. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Owner"> + <summary> + User who created this content + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Score"> + <summary> + The bayesian average for up votes / total votes, between [0,1] + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Created"> + <summary> + Time when the published item was created + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Updated"> + <summary> + Time when the published item was last updated + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPublic"> + <summary> + True if this is publically visible + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsFriendsOnly"> + <summary> + True if this item is only visible by friends of the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPrivate"> + <summary> + True if this is only visible to the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsBanned"> + <summary> + True if this item has been banned + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsAcceptedForUse"> + <summary> + Whether the developer of this app has specifically flagged this item as accepted in the Workshop + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesUp"> + <summary> + The number of upvotes of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesDown"> + <summary> + The number of downvotes of this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Download(System.Boolean)"> + <summary> + Start downloading this item. + If this returns false the item isn't getting downloaded. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesTotal"> + <summary> + If we're downloading, how big the total download is + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesDownloaded"> + <summary> + If we're downloading, how much we've downloaded + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.SizeBytes"> + <summary> + If we're installed, how big is the install + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadAmount"> + <summary> + If we're downloading our current progress as a delta betwen 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.HasTag(System.String)"> + <summary> + A case insensitive check for tag + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Subscribe"> + <summary> + Allows the user to subscribe to this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.DownloadAsync(System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Allows the user to subscribe to download this item asyncronously + If CancellationToken is default then there is 60 seconds timeout + Progress will be set to 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Unsubscribe"> + <summary> + Allows the user to unsubscribe from this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.AddFavorite"> + <summary> + Adds item to user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.RemoveFavorite"> + <summary> + Removes item from user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Vote(System.Boolean)"> + <summary> + Allows the user to rate a workshop item up or down. + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.GetUserVote"> + <summary> + Gets the current users vote on the item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Url"> + <summary> + Return a URL to view this item online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ChangelogUrl"> + <summary> + The URl to view this item's changelog + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CommentsUrl"> + <summary> + The URL to view the comments on this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DiscussUrl"> + <summary> + The URL to discuss this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.StatsUrl"> + <summary> + The URL to view this items stats online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.PreviewImageUrl"> + <summary> + The URL to the preview image for this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Edit"> + <summary> + Edit this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAnyTag"> + <summary> + Found items must have at least one of the defined tags + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAllTags"> + <summary> + Found items must have all defined tags + </summary> + </member> + <member name="P:Steamworks.Epoch.Current"> + <summary> + Returns the current Unix Epoch + </summary> + </member> + <member name="M:Steamworks.Epoch.ToDateTime(System.Decimal)"> + <summary> + Convert an epoch to a datetime + </summary> + </member> + <member name="M:Steamworks.Epoch.FromDateTime(System.DateTime)"> + <summary> + Convert a DateTime to a unix time + </summary> + </member> + <member name="M:Steamworks.Helpers.TakeBuffer(System.Int32)"> + <summary> + Returns a buffer. This will get returned and reused later on. + </summary> + </member> + <member name="T:Steamworks.PreserveAttribute"> + <summary> + Prevent unity from stripping shit we depend on + https://docs.unity3d.com/Manual/ManagedCodeStripping.html + </summary> + </member> + </members> +</doc> diff --git a/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win64.dll b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win64.dll Binary files differnew file mode 100644 index 0000000..bceb910 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win64.dll diff --git a/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win64.pdb b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win64.pdb Binary files differnew file mode 100644 index 0000000..8225dea --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win64.pdb diff --git a/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win64.xml b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win64.xml new file mode 100644 index 0000000..b6836cb --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/net46/Facepunch.Steamworks.Win64.xml @@ -0,0 +1,3474 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Facepunch.Steamworks.Win64</name> + </assembly> + <members> + <member name="T:Steamworks.CallResult`1"> + <summary> + An awaitable version of a SteamAPICall_t + </summary> + </member> + <member name="M:Steamworks.CallResult`1.OnCompleted(System.Action)"> + <summary> + This gets called if IsComplete returned false on the first call. + The Action "continues" the async call. We pass it to the Dispatch + to be called when the callback returns. + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetResult"> + <summary> + Gets the result. This is called internally by the async shit. + </summary> + </member> + <member name="P:Steamworks.CallResult`1.IsCompleted"> + <summary> + Return true if complete or failed + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetAwaiter"> + <summary> + This is what makes this struct awaitable + </summary> + </member> + <member name="T:Steamworks.ICallbackData"> + <summary> + Gives us a generic way to get the CallbackId of structs + </summary> + </member> + <member name="M:Steamworks.AuthTicket.Cancel"> + <summary> + Cancels a ticket. + You should cancel your ticket when you close the game or leave a server. + </summary> + </member> + <member name="T:Steamworks.Dispatch"> + <summary> + Responsible for all callback/callresult handling + + This manually pumps Steam's message queue and dispatches those + events to any waiting callbacks/callresults. + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnDebugCallback"> + <summary> + If set then we'll call this function every time a callback is generated. + + This is SLOW!! - it's for debugging - don't keep it on all the time. If you want to access a specific + callback then please create an issue on github and I'll add it! + + Params are : [Callback Type] [Callback Contents] [server] + + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnException"> + <summary> + Called if an exception happens during a callback/callresult. + This is needed because the exception isn't always accessible when running + async.. and can fail silently. With this hooked you won't be stuck wondering + what happened. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Init"> + <summary> + This gets called from Client/Server Init + It's important to switch to the manual dispatcher + </summary> + </member> + <member name="F:Steamworks.Dispatch.runningFrame"> + <summary> + Make sure we don't call Frame in a callback - because that'll cause some issues for everyone. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Frame(Steamworks.Data.HSteamPipe)"> + <summary> + Calls RunFrame and processes events from this Steam Pipe + </summary> + </member> + <member name="F:Steamworks.Dispatch.actionsToCall"> + <summary> + To be safe we don't call the continuation functions while iterating + the Callback list. This is maybe overly safe because the only way this + could be an issue is if the callback list is modified in the continuation + which would only happen if starting or shutting down in the callback. + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessCallback(Steamworks.Dispatch.CallbackMsg_t,System.Boolean)"> + <summary> + A callback is a general global message + </summary> + </member> + <member name="M:Steamworks.Dispatch.CallbackToString(Steamworks.CallbackType,System.IntPtr,System.Int32)"> + <summary> + Given a callback, try to turn it into a string + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessResult(Steamworks.Dispatch.CallbackMsg_t)"> + <summary> + A result is a reply to a specific command + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopClientAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopServerAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.OnCallComplete``1(Steamworks.Data.SteamAPICall_t,System.Action,System.Boolean)"> + <summary> + Watch for a steam api call + </summary> + </member> + <member name="M:Steamworks.Dispatch.Install``1(System.Action{``0},System.Boolean)"> + <summary> + Install a global callback. The passed function will get called if it's all good. + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.Numeric"> + <summary> + The score is just a simple numerical value + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeSeconds"> + <summary> + The score represents a time, in seconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeMilliSeconds"> + <summary> + The score represents a time, in milliseconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Ascending"> + <summary> + The top-score is the lowest number + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Descending"> + <summary> + The top-score is the highest number + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Unreliable"> + <summary> + Send the message unreliably. Can be lost. Messages *can* be larger than a + single MTU (UDP packet), but there is no retransmission, so if any piece + of the message is lost, the entire message will be dropped. + + The sending API does have some knowledge of the underlying connection, so + if there is no NAT-traversal accomplished or there is a recognized adjustment + happening on the connection, the packet will be batched until the connection + is open again. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoNagle"> + <summary> + Disable Nagle's algorithm. + By default, Nagle's algorithm is applied to all outbound messages. This means + that the message will NOT be sent immediately, in case further messages are + sent soon after you send this, which can be grouped together. Any time there + is enough buffered data to fill a packet, the packets will be pushed out immediately, + but partially-full packets not be sent until the Nagle timer expires. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoDelay"> + <summary> + If the message cannot be sent very soon (because the connection is still doing some initial + handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable + messages. Using this flag on reliable messages is invalid. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Reliable"> + Reliable message send. Can send up to 0.5mb in a single message. + Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for + efficient sends of large chunks of data. + </member> + <member name="P:Steamworks.Data.NetIdentity.LocalHost"> + <summary> + Return a NetIdentity that represents LocalHost + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.IsLocalHost"> + <summary> + Return true if this identity is localhost + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.SteamId)~Steamworks.Data.NetIdentity"> + <summary> + Convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetAddress)~Steamworks.Data.NetIdentity"> + <summary> + Set the specified Address + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetIdentity)~Steamworks.SteamId"> + <summary> + Automatically convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="P:Steamworks.Data.NetIdentity.SteamId"> + <summary> + Returns NULL if we're not a SteamId + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.Address"> + <summary> + Returns NULL if we're not a NetAddress + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.ToString"> + <summary> + We override tostring to provide a sensible representation + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Port"> + <summary> + The Port. This is redundant documentation. + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.AnyIp(System.UInt16)"> + <summary> + Any IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.LocalHost(System.UInt16)"> + <summary> + Localhost IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.String,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.Net.IPAddress,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Cleared"> + <summary> + Set everything to zero + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv6AllZeros"> + <summary> + Return true if the IP is ::0. (Doesn't check port.) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv4"> + <summary> + Return true if IP is mapped IPv4 + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsLocalHost"> + <summary> + Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Address"> + <summary> + Get the Address section + </summary> + </member> + <member name="T:Steamworks.Data.Connection"> + <summary> + Used as a base to create your client connection. This creates a socket + to a single connection. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Accept"> + <summary> + Accept an incoming connection that has been received on a listen socket. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Close(System.Boolean,System.Int32,System.String)"> + <summary> + Disconnects from the remote host and invalidates the connection handle. Any unread data on the connection is discarded.. + reasonCode is defined and used by you. + </summary> + </member> + <member name="P:Steamworks.Data.Connection.UserData"> + <summary> + Get/Set connection user data + </summary> + </member> + <member name="P:Steamworks.Data.Connection.ConnectionName"> + <summary> + A name for the connection, used mostly for debugging + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.IntPtr,System.Int32,Steamworks.Data.SendType)"> + <summary> + This is the best version to use. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],System.Int32,System.Int32,Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.String,Steamworks.Data.SendType)"> + <summary> + This creates a ton of garbage - so don't do anything with this beyond testing! + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Flush"> + <summary> + Flush any messages waiting on the Nagle timer and send them at the next transmission + opportunity (often that means right now). + </summary> + </member> + <member name="M:Steamworks.Data.Connection.DetailedStatus"> + <summary> + Returns detailed connection stats in text format. Useful + for dumping to a log, etc. + </summary> + <returns>Plain text connection info</returns> + </member> + <member name="T:Steamworks.Data.ConnectionInfo"> + <summary> + Describe the state of a connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.State"> + <summary> + High level state of the connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Address"> + <summary> + Remote address. Might be all 0's if we don't know it, or if this is N/A. + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Identity"> + <summary> + Who is on the other end? Depending on the connection type and phase of the connection, we might not know + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.EndReason"> + <summary> + Basic cause of the connection termination or problem. + </summary> + </member> + <member name="T:Steamworks.Data.NetPingLocation"> + <summary> + + Object that describes a "location" on the Internet with sufficient + detail that we can reasonably estimate an upper bound on the ping between + the two hosts, even if a direct route between the hosts is not possible, + and the connection must be routed through the Steam Datagram Relay network. + This does not contain any information that identifies the host. Indeed, + if two hosts are in the same building or otherwise have nearly identical + networking characteristics, then it's valid to use the same location + object for both of them. + + NOTE: This object should only be used in the same process! Do not serialize it, + send it over the wire, or persist it in a file or database! If you need + to do that, convert it to a string representation using the methods in + ISteamNetworkingUtils(). + + </summary> + </member> + <member name="M:Steamworks.Data.NetPingLocation.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + Estimate the round-trip latency between two arbitrary locations, in + milliseconds. This is a conservative estimate, based on routing through + the relay network. For most basic relayed connections, this ping time + will be pretty accurate, since it will be based on the route likely to + be actually used. + + If a direct IP route is used (perhaps via NAT traversal), then the route + will be different, and the ping time might be better. Or it might actually + be a bit worse! Standard IP routing is frequently suboptimal! + + But even in this case, the estimate obtained using this method is a + reasonable upper bound on the ping time. (Also it has the advantage + of returning immediately and not sending any packets.) + + In a few cases we might not able to estimate the route. In this case + a negative value is returned. k_nSteamNetworkingPing_Failed means + the reason was because of some networking difficulty. (Failure to + ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + currently answer the question for some other reason. + + Do you need to be able to do this from a backend/matchmaking server? + You are looking for the "ticketgen" library. + </member> + <member name="M:Steamworks.Data.Socket.Close"> + <summary> + Destroy a listen socket. All the connections that were accepting on the listen + socket are closed ungracefully. + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.State"> + <summary> + True if unlocked + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.UnlockTime"> + <summary> + Should hold the unlock time if State is true + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIcon"> + <summary> + Gets the icon of the achievement. This can return a null image even though the image exists if the image + hasn't been downloaded by Steam yet. You can use GetIconAsync if you want to wait for the image to be downloaded. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIconAsync(System.Int32)"> + <summary> + Gets the icon of the achievement, waits for it to load if we have to + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.GlobalUnlocked"> + <summary> + Returns the fraction (0-1) of users who have unlocked the specified achievement, or -1 if no data available. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Trigger(System.Boolean)"> + <summary> + Make this achievement earned + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Clear"> + <summary> + Reset this achievement to not achieved + </summary> + </member> + <member name="T:Steamworks.Data.DurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Appid"> + <summary> + appid generating playtime + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Applicable"> + <summary> + is duration control applicable to user + game combination + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeInLastFiveHours"> + <summary> + playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeToday"> + <summary> + playtime on current calendar day + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Progress"> + <summary> + recommended progress + </summary> + </member> + <member name="P:Steamworks.Data.Leaderboard.Name"> + <summary> + the name of a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.ReplaceScore(System.Int32,System.Int32[])"> + <summary> + Submit your score and replace your old score even if it was better + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.SubmitScoreAsync(System.Int32,System.Int32[])"> + <summary> + Submit your new score, but won't replace your high score if it's lower + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.AttachUgc(Steamworks.Data.Ugc)"> + <summary> + Attaches a piece of user generated content the user's entry on a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAsync(System.Int32,System.Int32)"> + <summary> + Used to query for a sequential range of leaderboard entries by leaderboard Sort. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAroundUserAsync(System.Int32,System.Int32)"> + <summary> + Used to retrieve leaderboard entries relative a user's entry. If there are not enough entries in the leaderboard + before or after the user's entry, Steam will adjust the range to try to return the number of entries requested. + For example, if the user is #1 on the leaderboard and start is set to -2, end is set to 2, Steam will return the first + 5 entries in the leaderboard. If The current user has no entry, this will return null. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresFromFriendsAsync"> + <summary> + Used to retrieve all leaderboard entries for friends of the current user + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Join"> + <summary> + Try to join this room. Will return RoomEnter.Success on success, + and anything else is a failure + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Leave"> + <summary> + Leave a lobby; this will take effect immediately on the client side + other users in the lobby will be notified by a LobbyChatUpdate_t callback + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.InviteFriend(Steamworks.SteamId)"> + <summary> + Invite another user to the lobby + will return true if the invite is successfully sent, whether or not the target responds + returns false if the local user is not connected to the Steam servers + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MemberCount"> + <summary> + returns the number of users in the specified lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Members"> + <summary> + Returns current members. Need to be in the lobby to see the users. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetData(System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetData(System.String,System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.DeleteData(System.String)"> + <summary> + Removes a metadata key from the lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Data"> + <summary> + Get all data for this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetMemberData(Steamworks.Friend,System.String)"> + <summary> + Gets per-user metadata for someone in this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetMemberData(System.String,System.String)"> + <summary> + Sets per-user metadata (for the local user implicitly) + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatString(System.String)"> + <summary> + Sends a string to the chat room + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatBytes(System.Byte[])"> + <summary> + Sends bytes the the chat room + this isn't exposed because there's no way to read raw bytes atm, + and I figure people can send json if they want something more advanced + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Refresh"> + <summary> + Refreshes metadata for a lobby you're not necessarily in right now + you never do this for lobbies you're a member of, only if your + this will send down all the metadata associated with a lobby + this is an asynchronous call + returns false if the local user is not connected to the Steam servers + results will be returned by a LobbyDataUpdate_t callback + if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MaxMembers"> + <summary> + Max members able to join this lobby. Cannot be over 250. + Can only be set by the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(Steamworks.SteamId)"> + <summary> + [SteamID variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(System.String,System.UInt16)"> + <summary> + [IP/Port variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetGameServer(System.UInt32@,System.UInt16@,Steamworks.SteamId@)"> + <summary> + Gets the details of the lobby's game server, if set. Returns true if the lobby is + valid and has a server set, otherwise returns false. + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Owner"> + <summary> + You must be the lobby owner to set the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.IsOwnedBy(Steamworks.SteamId)"> + <summary> + Check if the specified SteamId owns the lobby + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceClose"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceFar"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceWorldwide"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithKeyValue(System.String,System.String)"> + <summary> + Filter by specified key/value pair; string parameters + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithLower(System.String,System.Int32)"> + <summary> + Numerical filter where value is less than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithHigher(System.String,System.Int32)"> + <summary> + Numerical filter where value is greater than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must be equal to the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithNotEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must not equal the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.AddNumericalFilter(System.String,System.Int32,Steamworks.LobbyComparison)"> + <summary> + Test key, initialize numerical filter list if necessary, then add new numerical filter + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.OrderByNear(System.String,System.Int32)"> + <summary> + Order filtered results according to key/values nearest the provided key/value pair. + Can specify multiple near value filters; each successive filter is lower priority than the previous. + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithSlotsAvailable(System.Int32)"> + <summary> + returns only lobbies with the specified number of slots available + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithMaxResults(System.Int32)"> + <summary> + sets how many results to return, the lower the count the faster it is to download the lobby results + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.RequestAsync"> + <summary> + Run the query, get the matching lobbies + </summary> + </member> + <member name="T:Steamworks.Data.OutgoingPacket"> + <summary> + A server query packet. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Address"> + <summary> + Target IP address + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Port"> + <summary> + Target port + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Data"> + <summary> + This data is pooled. Make a copy if you don't use it immediately. + This buffer is also quite large - so pay attention to Size. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Size"> + <summary> + Size of the data + </summary> + </member> + <member name="T:Steamworks.Data.RemotePlaySession"> + <summary> + Represents a RemotePlaySession from the SteamRemotePlay interface + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.IsValid"> + <summary> + Returns true if this session was valid when created. This will stay true even + after disconnection - so be sure to watch SteamRemotePlay.OnSessionDisconnected + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.SteamId"> + <summary> + Get the SteamID of the connected user + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.ClientName"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.FormFactor"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagUser(Steamworks.SteamId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.SetLocation(System.String)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagPublishedFile(Steamworks.Data.PublishedFileId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="P:Steamworks.Data.ServerInfo.Tags"> + <summary> + Gets the individual tags for this server + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToHistory"> + <summary> + Add this server to our history list + If we're already in the history list, weill set the last played time to now + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.QueryRulesAsync"> + <summary> + If this server responds to source engine style queries, we'll be able to get a list of rules here + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromHistory"> + <summary> + Remove this server from our history list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToFavourites"> + <summary> + Add this server to our favourite list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromFavourites"> + <summary> + Remove this server from our favourite list + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultStatus(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Find out the status of an asynchronous inventory result handle. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultItems(Steamworks.Data.SteamInventoryResult_t,Steamworks.Data.SteamItemDetails_t[],System.UInt32@)"> + <summary> + Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultTimestamp(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.CheckResultSteamID(Steamworks.Data.SteamInventoryResult_t,Steamworks.SteamId)"> + <summary> + Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.DestroyResult(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Destroys a result handle and frees all associated memory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetAllItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + Captures the entire state of the current users Steam inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetItemsByID(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId@,System.UInt32)"> + <summary> + Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GrantPromoItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only). + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.ConsumeItem(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId,System.UInt32)"> + <summary> + ConsumeItem() removes items from the inventory permanently. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.SendItemDropHeartbeat"> + <summary> + Deprecated method. Playtime accounting is performed on the Steam servers. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.TriggerItemDrop(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryDefId)"> + <summary> + Playtime credit must be consumed and turned into item drops by your game. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.LoadItemDefinitions"> + <summary> + LoadItemDefinitions triggers the automatic load and refresh of item definitions. + </summary> + </member> + <member name="M:Steamworks.ISteamUserStats.DownloadLeaderboardEntriesForUsers(Steamworks.Data.SteamLeaderboard_t,Steamworks.SteamId[],System.Int32)"> + <summary> + Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.Interface"> + <summary> + An optional interface to use instead of deriving + </summary> + </member> + <member name="F:Steamworks.ConnectionManager.Connection"> + <summary> + The actual connection we're managing + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.ConnectionInfo"> + <summary> + The last received ConnectionInfo + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We're trying to connect! + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We started connecting to this guy + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + We got disconnected + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnMessage(System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Must call Accept or Close on the connection within a second or so + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection leaves + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnMessage(Steamworks.Data.Connection,Steamworks.Data.NetIdentity,System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message from a connection + </summary> + </member> + <member name="T:Steamworks.SocketManager"> + <summary> + Used as a base to create your networking server. This creates a socket + and listens/communicates with multiple queries. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Default behaviour is to accept every connection + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="P:Steamworks.ServerList.Base.AppId"> + <summary> + Which app we're querying. Defaults to the current app. + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnChanges"> + <summary> + When a new server is added, this function will get called + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnResponsiveServer"> + <summary> + Called for every responsive server + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Responsive"> + <summary> + A list of servers that responded. If you're only interested in servers that responded since you + last updated, then simply clear this list. + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Unresponsive"> + <summary> + A list of servers that were in the master list but didn't respond. + </summary> + </member> + <member name="M:Steamworks.ServerList.Base.RunQueryAsync(System.Single)"> + <summary> + Query the server list. Task result will be true when finished + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamApps"> + <summary> + Exposes a wide range of information and actions for applications and Downloadable Content (DLC). + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnDlcInstalled"> + <summary> + posted after the user gains ownership of DLC and that DLC is installed + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnNewLaunchParameters"> + <summary> + posted after the user gains executes a Steam URL with command line or query parameters + such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc + while the game is already running. The new params can be queried + with GetLaunchQueryParam and GetLaunchCommandLine + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribed"> + <summary> + Checks if the active user is subscribed to the current App ID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFamilySharing"> + <summary> + Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsLowVoilence"> + <summary> + Checks if the license owned by the user provides low violence depots. + Low violence depots are useful for copies sold in countries that have content restrictions + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsCybercafe"> + <summary> + Checks whether the current App ID license is for Cyber Cafes. + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsVACBanned"> + <summary> + CChecks if the user has a VAC ban on their account + </summary> + </member> + <member name="P:Steamworks.SteamApps.GameLanguage"> + <summary> + Gets the current language that the user has set. + This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AvailableLanguages"> + <summary> + Gets a list of the languages the current app supports. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsSubscribedToApp(Steamworks.AppId)"> + <summary> + Checks if the active user is subscribed to a specified AppId. + Only use this if you need to check ownership of another game related to yours, a demo for example. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsDlcInstalled(Steamworks.AppId)"> + <summary> + Checks if the user owns a specific DLC and if the DLC is installed + </summary> + </member> + <member name="M:Steamworks.SteamApps.PurchaseTime(Steamworks.AppId)"> + <summary> + Returns the time of the purchase of the app + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFreeWeekend"> + <summary> + Checks if the user is subscribed to the current app through a free weekend + This function will return false for users who have a retail or other type of license + Before using, please ask your Valve technical contact how to package and secure your free weekened + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcInformation"> + <summary> + Returns metadata for all available DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.UninstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="P:Steamworks.SteamApps.CurrentBetaName"> + <summary> + Returns null if we're not on a beta branch, else the name of the branch + </summary> + </member> + <member name="M:Steamworks.SteamApps.MarkContentCorrupt(System.Boolean)"> + <summary> + Allows you to force verify game content on next launch. + + If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), + you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit. + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstalledDepots(Steamworks.AppId)"> + <summary> + Gets a list of all installed depots for a given App ID in mount order + </summary> + </member> + <member name="M:Steamworks.SteamApps.AppInstallDir(Steamworks.AppId)"> + <summary> + Gets the install folder for a specific AppID. + This works even if the application is not installed, based on where the game would be installed with the default Steam library location. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsAppInstalled(Steamworks.AppId)"> + <summary> + The app may not actually be owned by the current user, they may have it left over from a free weekend, etc. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AppOwner"> + <summary> + Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed.. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetLaunchParam(System.String)"> + <summary> + Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. + Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. + Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + but it is advised that you not param names beginning with an underscore for your own features. + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcDownloadProgress(Steamworks.AppId)"> + <summary> + Gets the download progress for optional DLC. + </summary> + </member> + <member name="P:Steamworks.SteamApps.BuildId"> + <summary> + Gets the buildid of this app, may change at any time based on backend updates to the game. + Defaults to 0 if you're not running a build downloaded from steam. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetFileDetailsAsync(System.String)"> + <summary> + Asynchronously retrieves metadata details about a specific file in the depot manifest. + Currently provides: + </summary> + </member> + <member name="P:Steamworks.SteamApps.CommandLine"> + <summary> + Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. + This method of passing a connect string (used when joining via rich presence, accepting an + invite, etc) is preferable to passing the connect string on the operating system command + line, which is a security risk. In order for rich presence joins to go through this + path and not be placed on the OS command line, you must set a value in your app's + configuration on Steam. Ask Valve for help with this. + </summary> + </member> + <member name="M:Steamworks.SteamClient.Init(System.UInt32,System.Boolean)"> + <summary> + Initialize the steam client. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="P:Steamworks.SteamClient.IsLoggedOn"> + <summary> + Checks if the current user's Steam client is connected to the Steam servers. + If it's not then no real-time services provided by the Steamworks API will be enabled. The Steam + client will automatically be trying to recreate the connection as often as possible. When the + connection is restored a SteamServersConnected_t callback will be posted. + You usually don't need to check for this yourself. All of the API calls that rely on this will + check internally. Forcefully disabling stuff when the player loses access is usually not a + very good experience for the player and you could be preventing them from accessing APIs that do not + need a live connection to Steam. + </summary> + </member> + <member name="P:Steamworks.SteamClient.SteamId"> + <summary> + Gets the Steam ID of the account currently logged into the Steam client. This is + commonly called the 'current user', or 'local user'. + A Steam ID is a unique identifier for a Steam accounts, Steam groups, Lobbies and Chat + rooms, and used to differentiate users in all parts of the Steamworks API. + </summary> + </member> + <member name="P:Steamworks.SteamClient.Name"> + <summary> + returns the local players name - guaranteed to not be NULL. + this is the same name as on the users community profile page + </summary> + </member> + <member name="P:Steamworks.SteamClient.State"> + <summary> + gets the status of the current user + </summary> + </member> + <member name="P:Steamworks.SteamClient.AppId"> + <summary> + returns the appID of the current process + </summary> + </member> + <member name="M:Steamworks.SteamClient.RestartAppIfNecessary(System.UInt32)"> + <summary> + Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't + this returns true then it starts the Steam client if required and launches your game again through it, + and you should quit your process as soon as possible. This effectively runs steam://run/AppId so it + may not relaunch the exact executable that called it, as it will always relaunch from the version + installed in your Steam library folder/ + Note that during development, when not launching via Steam, this might always return true. + </summary> + </member> + <member name="M:Steamworks.SteamClient.ValidCheck"> + <summary> + Called in interfaces that rely on this being initialized + </summary> + </member> + <member name="T:Steamworks.SteamFriends"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnChatMessage"> + <summary> + Called when chat message has been received from a friend. You'll need to turn on + ListenForFriendsMessages to recieve this. (friend, msgtype, message) + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnPersonaStateChange"> + <summary> + called when a friends' status changes + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameRichPresenceJoinRequested"> + <summary> + Called when the user tries to join a game from their friends list + rich presence will have been set with the "connect" key which is set here + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameOverlayActivated"> + <summary> + Posted when game overlay activates or deactivates + the game can use this to be pause or resume single player games + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameServerChangeRequested"> + <summary> + Called when the user tries to join a different game server from their friends list + game client should attempt to connect to specified server when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameLobbyJoinRequested"> + <summary> + Called when the user tries to join a lobby from their friends list + game client should attempt to connect to specified lobby when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnFriendRichPresenceUpdate"> + <summary> + Callback indicating updated data about friends rich presence information + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenOverlay(System.String)"> + <summary> + The dialog to open. Valid options are: + "friends", + "community", + "players", + "settings", + "officialgamegroup", + "stats", + "achievements". + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenUserOverlay(Steamworks.SteamId,System.String)"> + <summary> + "steamid" - Opens the overlay web browser to the specified user or groups profile. + "chat" - Opens a chat window to the specified user, or joins the group chat. + "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API. + "stats" - Opens the overlay web browser to the specified user's stats. + "achievements" - Opens the overlay web browser to the specified user's achievements. + "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend. + "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend. + "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite. + "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenStoreOverlay(Steamworks.AppId)"> + <summary> + Activates the Steam Overlay to the Steam store page for the provided app. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenWebOverlay(System.String,System.Boolean)"> + <summary> + Activates Steam Overlay web browser directly to the specified URL. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenGameInviteOverlay(Steamworks.SteamId)"> + <summary> + Activates the Steam Overlay to open the invite dialog. Invitations sent from this dialog will be for the provided lobby. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetPlayedWith(Steamworks.SteamId)"> + <summary> + Mark a target user as 'played with'. + NOTE: The current user must be in game with the other player for the association to work. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.RequestUserInformation(Steamworks.SteamId,System.Boolean)"> + <summary> + Requests the persona name and optionally the avatar of a specified user. + NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them. + returns true if we're fetching the data, false if we already have it + </summary> + </member> + <member name="M:Steamworks.SteamFriends.GetRichPresence(System.String)"> + <summary> + Find a rich presence value by key for current user. Will be null if not found. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetRichPresence(System.String,System.String)"> + <summary> + Sets a rich presence value by key for current user. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.ClearRichPresence"> + <summary> + Clears all of the current user's rich presence data. + </summary> + </member> + <member name="P:Steamworks.SteamFriends.ListenForFriendsMessages"> + <summary> + Listens for Steam friends chat messages. + You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. + After enabling this you will receive callbacks when ever the user receives a chat message. + </summary> + </member> + <member name="M:Steamworks.SteamInput.RunFrame"> + <summary> + You shouldn't really need to call this because it get called by RunCallbacks on SteamClient + but Valve think it might be a nice idea if you call it right before you get input info - + just to make sure the info you're getting is 100% up to date. + </summary> + </member> + <member name="P:Steamworks.SteamInput.Controllers"> + <summary> + Return a list of connected controllers. + </summary> + </member> + <member name="M:Steamworks.SteamInput.GetDigitalActionGlyph(Steamworks.Controller,System.String)"> + <summary> + Return an absolute path to the PNG image glyph for the provided digital action name. The current + action set in use for the controller will be used for the lookup. You should cache the result and + maintain your own list of loaded PNG assets. + </summary> + <param name="controller"></param> + <param name="action"></param> + <returns></returns> + </member> + <member name="T:Steamworks.SteamInventory"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamInventory.LoadItemDefinitions"> + <summary> + Call this if you're going to want to access definition information. You should be able to get + away with calling this once at the start if your game, assuming your items don't change all the time. + This will trigger OnDefinitionsUpdated at which point Definitions should be set. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.WaitForDefinitions(System.Single)"> + <summary> + Will call LoadItemDefinitions and wait until Definitions is not null + </summary> + </member> + <member name="M:Steamworks.SteamInventory.FindDefinition(Steamworks.Data.InventoryDefId)"> + <summary> + Try to find the definition that matches this definition ID. + Uses a dictionary so should be about as fast as possible. + </summary> + </member> + <member name="P:Steamworks.SteamInventory.Items"> + <summary> + We will try to keep this list of your items automatically up to date. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItems"> + <summary> + Update the list of Items[] + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItemsAsync"> + <summary> + Get all items and return the InventoryResult + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GenerateItemAsync(Steamworks.InventoryDef,System.Int32)"> + <summary> + This is used to grant a specific item to the user. This should + only be used for development prototyping, from a trusted server, + or if you don't care about hacked clients granting arbitrary items. + This call can be disabled by a setting on Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem.Amount[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.DeserializeAsync(System.Byte[],System.Int32)"> + <summary> + Deserializes a result set and verifies the signature bytes. + This call has a potential soft-failure mode where the Result is expired, it will + still succeed in this mode.The "expired" + result could indicate that the data may be out of date - not just due to timed + expiration( one hour ), but also because one of the items in the result set may + have been traded or consumed since the result set was generated.You could compare + the timestamp from GetResultTimestamp to ISteamUtils::GetServerRealTime to determine + how old the data is. You could simply ignore the "expired" result code and + continue as normal, or you could request the player with expired data to send + an updated result set. + You should call CheckResultSteamID on the result handle when it completes to verify + that a remote player is not pretending to have a different user's inventory. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GrantPromoItemsAsync"> + <summary> + Grant all promotional items the user is eligible for + </summary> + </member> + <member name="M:Steamworks.SteamInventory.TriggerItemDropAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger an item drop for this user. This is for timed drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.AddPromoItemAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger a promo item drop. You can call this at startup, it won't + give users multiple promo drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.StartPurchaseAsync(Steamworks.InventoryDef[])"> + <summary> + Start buying a cart load of items. This will return a positive result is the purchase has + begun. You should listen out for SteamUser.OnMicroTxnAuthorizationResponse for a success. + </summary> + </member> + <member name="T:Steamworks.SteamMatchmaking"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="P:Steamworks.SteamMatchmaking.MaxLobbyKeyLength"> + <summary> + Maximum number of characters a lobby metadata key can be + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyInvite"> + <summary> + Someone invited you to a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyEntered"> + <summary> + You joined a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyCreated"> + <summary> + You created a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyGameCreated"> + <summary> + A game server has been associated with the lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyDataChanged"> + <summary> + The lobby metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDataChanged"> + <summary> + The lobby member metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberJoined"> + <summary> + The lobby member joined + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberLeave"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDisconnected"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberKicked"> + <summary> + The lobby member was kicked. The 3rd param is the user that kicked them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberBanned"> + <summary> + The lobby member was banned. The 3rd param is the user that banned them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnChatMessage"> + <summary> + A chat message was recieved from a member of a lobby + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.CreateLobbyAsync(System.Int32)"> + <summary> + Creates a new invisible lobby. Call lobby.SetPublic to take it online. + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.JoinLobbyAsync(Steamworks.SteamId)"> + <summmary> + Attempts to directly join the specified lobby + </summmary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetFavoriteServers"> + <summary> + Get a list of servers that are on your favorites list + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetHistoryServers"> + <summary> + Get a list of servers that you have added to your play history + </summary> + </member> + <member name="T:Steamworks.SteamMatchmakingServers"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="T:Steamworks.SteamMusic"> + <summary> + Functions to control music playback in the steam client. + This gives games the opportunity to do things like pause the music or lower the volume, + when an important cut scene is shown, and start playing afterwards. + Nothing uses Steam Music though so this can probably get fucked + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnPlaybackChanged"> + <summary> + Playback status changed + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnVolumeChanged"> + <summary> + Volume changed, parameter is new volume + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsEnabled"> + <summary> + Checks if Steam Music is enabled + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsPlaying"> + <summary> + true if a song is currently playing, paused, or queued up to play; otherwise false. + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Status"> + <summary> + Gets the current status of the Steam Music player + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayPrevious"> + <summary> + Have the Steam Music player play the previous song. + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayNext"> + <summary> + Have the Steam Music player skip to the next song + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Volume"> + <summary> + Gets/Sets the current volume of the Steam Music player + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PSessionRequest"> + <summary> + This SteamId wants to send you a message. You should respond by calling AcceptP2PSessionWithUser + if you want to recieve their messages + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PConnectionFailed"> + <summary> + Called when packets can't get through to the specified user. + All queued packets unsent at this point will be dropped, further attempts + to send will retry making the connection (but will be dropped if we fail again). + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AcceptP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called in response to a OnP2PSessionRequest + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AllowP2PPacketRelay(System.Boolean)"> + <summary> + Allow or disallow P2P connects to fall back on Steam server relay if direct + connection or NAT traversal can't be established. Applies to connections + created after setting or old connections that need to reconnect. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.CloseP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called when you're done communicating with a user, as this will + free up all of the resources allocated for the connection under-the-hood. + If the remote user tries to send data to you again, a new OnP2PSessionRequest + callback will be posted + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.IsP2PPacketAvailable(System.Int32)"> + <summary> + Checks if a P2P packet is available to read, and gets the size of the message if there is one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte[],System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte*,System.UInt32,System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte[],System.Int32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte*,System.UInt32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket``1(Steamworks.Data.NetAddress)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6) + + To use this derive a class from SocketManager and override as much as you want. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket(Steamworks.Data.NetAddress,Steamworks.ISocketManager)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6). + + To use this you should pass a class that inherits ISocketManager. You can use + SocketManager to get connections and send messages, but the ISocketManager class + will received all the appropriate callbacks. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal``1(Steamworks.Data.NetAddress)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal(Steamworks.Data.NetAddress,Steamworks.IConnectionManager)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateRelaySocket``1(System.Int32)"> + <summary> + Creates a server that will be relayed via Valve's network (hiding the IP and improving ping) + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectRelay``1(Steamworks.SteamId,System.Int32)"> + <summary> + Connect to a relay server + </summary> + </member> + <member name="T:Steamworks.SteamNetworkingUtils"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamNetworkingUtils.OnDebugOutput"> + <summary> + A function to receive debug network information on. This will do nothing + unless you set DebugLevel to something other than None. + + You should set this to an appropriate level instead of setting it to the highest + and then filtering it by hand because a lot of energy is used by creating the strings + and your frame rate will tank and you won't know why. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Status"> + <summary> + The latest available status gathered from the SteamRelayNetworkStatus callback + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.InitRelayNetworkAccess"> + <summary> + If you know that you are going to be using the relay network (for example, + because you anticipate making P2P connections), call this to initialize the + relay network. If you do not call this, the initialization will + be delayed until the first time you use a feature that requires access + to the relay network, which will delay that first access. + + You can also call this to force a retry if the previous attempt has failed. + Performing any action that requires access to the relay network will also + trigger a retry, and so calling this function is never strictly necessary, + but it can be useful to call it a program launch time, if access to the + relay network is anticipated. + + Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + callbacks to know when initialization has completed. + Typically initialization completes in a few seconds. + + Note: dedicated servers hosted in known data centers do *not* need + to call this, since they do not make routing decisions. However, if + the dedicated server will be using P2P functionality, it will act as + a "client" and this should be called. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.LocalPingLocation"> + <summary> + Return location info for the current host. + + It takes a few seconds to initialize access to the relay network. If + you call this very soon after startup the data may not be available yet. + + This always return the most up-to-date information we have available + right now, even if we are in the middle of re-calculating ping times. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + <summary> + Same as PingLocation.EstimatePingTo, but assumes that one location is the local host. + This is a bit faster, especially if you need to calculate a bunch of + these in a loop to find the fastest one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.WaitForPingDataAsync(System.Single)"> + <summary> + If you need ping information straight away, wait on this. It will return + immediately if you already have up to date ping data + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.ConnectionTimeout"> + <summary> + Timeout value (in ms) to use when first connecting + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Timeout"> + <summary> + Timeout value (in ms) to use after connection is established + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.SendBufferSize"> + <summary> + Upper limit of buffered pending bytes to be sent. + If this is reached SendMessage will return LimitExceeded. + Default is 524288 bytes (512k) + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.DebugLevel"> + <summary> + Get Debug Information via OnDebugOutput event + + Except when debugging, you should only use NetDebugOutput.Msg + or NetDebugOutput.Warning. For best performance, do NOT + request a high detail level and then filter out messages in the callback. + + This incurs all of the expense of formatting the messages, which are then discarded. + Setting a high priority value (low numeric value) here allows the library to avoid + doing this work. + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugLevel"> + <summary> + So we can remember and provide a Get for DebugLEvel + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugFunc"> + <summary> + We need to keep the delegate around until it's not used anymore + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OnDebugMessage(Steamworks.NetDebugOutput,System.IntPtr)"> + <summary> + This can be called from other threads - so we're going to queue these up and process them in a safe place. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OutputDebugMessages"> + <summary> + Called regularly from the Dispatch loop so we can provide a timely + stream of messages. + </summary> + </member> + <member name="T:Steamworks.SteamParental"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamParental.OnSettingsChanged"> + <summary> + Parental Settings Changed + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockEnabled"> + <summary> + + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockLocked"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsAppBlocked(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsAppInBlockList(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsFeatureBlocked(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsFeatureInBlockList(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="T:Steamworks.SteamParties"> + <summary> + This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. + Tell Steam the number of player spots that are available for your party, and a join-game string, and it + will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. + Adjust the number of open slots if other players join through alternate matchmaking methods. + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnBeaconLocationsUpdated"> + <summary> + The list of possible Party beacon locations has changed + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnActiveBeaconsUpdated"> + <summary> + The list of active beacons may have changed + </summary> + </member> + <member name="T:Steamworks.SteamRemotePlay"> + <summary> + Functions that provide information about Steam Remote Play sessions, streaming your game content to another computer or to a Steam Link app or hardware. + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionConnected"> + <summary> + Called when a session is connected + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionDisconnected"> + <summary> + Called when a session becomes disconnected + </summary> + </member> + <member name="P:Steamworks.SteamRemotePlay.SessionCount"> + <summary> + Get the number of currently connected Steam Remote Play sessions + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.GetSession(System.Int32)"> + <summary> + Get the currently connected Steam Remote Play session ID at the specified index. + IsValid will return false if it's out of bounds + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.SendInvite(Steamworks.SteamId)"> + <summary> + Invite a friend to Remote Play Together + This returns false if the invite can't be sent + </summary> + </member> + <member name="T:Steamworks.SteamRemoteStorage"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileWrite(System.String,System.Byte[])"> + <summary> + Creates a new file, writes the bytes to the file, and then closes the file. + If the target file already exists, it is overwritten + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileRead(System.String)"> + <summary> + Opens a binary file, reads the contents of the file into a byte array, and then closes the file. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileExists(System.String)"> + <summary> + Checks whether the specified file exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FilePersisted(System.String)"> + <summary> + Checks if a specific file is persisted in the steam cloud. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileTime(System.String)"> + <summary> + Gets the specified file's last modified date/time. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileSize(System.String)"> + <summary> + Gets the specified files size in bytes. 0 if not exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileForget(System.String)"> + <summary> + Deletes the file from remote storage, but leaves it on the local disk and remains accessible from the API. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileDelete(System.String)"> + <summary> + Deletes a file from the local disk, and propagates that delete to the cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaBytes"> + <summary> + Number of bytes total + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaUsedBytes"> + <summary> + Number of bytes used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaRemainingBytes"> + <summary> + Number of bytes remaining until your quota is used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabled"> + <summary> + returns true if IsCloudEnabledForAccount AND IsCloudEnabledForApp + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForAccount"> + <summary> + Checks if the account wide Steam Cloud setting is enabled for this user + or if they disabled it in the Settings->Cloud dialog. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForApp"> + <summary> + Checks if the per game Steam Cloud setting is enabled for this user + or if they disabled it in the Game Properties->Update dialog. + + This must only ever be set as the direct result of the user explicitly + requesting that it's enabled or not. This is typically accomplished with + a checkbox within your in-game options + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.FileCount"> + <summary> + Gets the total number of local files synchronized by Steam Cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.Files"> + <summary> + Get a list of filenames synchronized by Steam Cloud + </summary> + </member> + <member name="T:Steamworks.SteamScreenshots"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotRequested"> + <summary> + A screenshot has been requested by the user from the Steam screenshot hotkey. + This will only be called if Hooked is true, in which case Steam + will not take the screenshot itself. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotReady"> + <summary> + A screenshot successfully written or otherwise added to the library and can now be tagged. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotFailed"> + <summary> + A screenshot attempt failed + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.WriteScreenshot(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.AddScreenshot(System.String,System.String,System.Int32,System.Int32)"> + <summary> + Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + JPEG, TGA, and PNG formats are supported. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.TriggerScreenshot"> + <summary> + Causes the Steam overlay to take a screenshot. + If screenshots are being hooked by the game then a + ScreenshotRequested callback is sent back to the game instead. + </summary> + </member> + <member name="P:Steamworks.SteamScreenshots.Hooked"> + <summary> + Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or if the game handles them. + Hooking is disabled by default, and only ever enabled if you do so with this function. + If the hooking is enabled, then the ScreenshotRequested_t callback will be sent if the user presses the hotkey or + when TriggerScreenshot is called, and then the game is expected to call WriteScreenshot or AddScreenshotToLibrary in response. + </summary> + </member> + <member name="T:Steamworks.SteamServer"> + <summary> + Provides the core of the Steam Game Servers API + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnValidateAuthTicketResponse"> + <summary> + User has been authed or rejected + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the server now is logged on and has a working connection to the Steam master server. + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServerConnectFailure"> + <summary> + This will occur periodically if the Steam client is not connected, and has failed when retrying to establish a connection (result, stilltrying) + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersDisconnected"> + <summary> + Disconnected from Steam + </summary> + </member> + <member name="M:Steamworks.SteamServer.Init(Steamworks.AppId,Steamworks.SteamServerInit,System.Boolean)"> + <summary> + Initialize the steam server. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="M:Steamworks.SteamServer.RunCallbacks"> + <summary> + Run the callbacks. This is also called in Async callbacks. + </summary> + </member> + <member name="P:Steamworks.SteamServer.DedicatedServer"> + <summary> + Sets whether this should be marked as a dedicated server. + If not, it is assumed to be a listen server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MaxPlayers"> + <summary> + Gets or sets the current MaxPlayers. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.BotCount"> + <summary> + Gets or sets the current BotCount. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MapName"> + <summary> + Gets or sets the current Map Name. + </summary> + </member> + <member name="P:Steamworks.SteamServer.ModDir"> + <summary> + Gets or sets the current ModDir + </summary> + </member> + <member name="P:Steamworks.SteamServer.Product"> + <summary> + Gets the current product + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameDescription"> + <summary> + Gets or sets the current Product + </summary> + </member> + <member name="P:Steamworks.SteamServer.ServerName"> + <summary> + Gets or sets the current ServerName + </summary> + </member> + <member name="P:Steamworks.SteamServer.Passworded"> + <summary> + Set whether the server should report itself as passworded + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameTags"> + <summary> + Gets or sets the current GameTags. This is a comma seperated list of tags for this server. + When querying the server list you can filter by these tags. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOnAnonymous"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOff"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="P:Steamworks.SteamServer.LoggedOn"> + <summary> + Returns true if the server is connected and registered with the Steam master server + You should have called LogOnAnonymous etc on startup. + </summary> + </member> + <member name="P:Steamworks.SteamServer.PublicIp"> + <summary> + To the best of its ability this tries to get the server's + current public ip address. Be aware that this is likely to return + null for the first few seconds after initialization. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeats"> + <summary> + Enable or disable heartbeats, which are sent regularly to the master server. + Enabled by default. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeatRate"> + <summary> + Set heartbeat interval, if automatic heartbeats are enabled. + You can leave this at the default. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ForceHeartbeat"> + <summary> + Force send a heartbeat to the master server instead of waiting + for the next automatic update (if you've left them enabled) + </summary> + </member> + <member name="M:Steamworks.SteamServer.UpdatePlayer(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Update this connected player's information. You should really call this + any time a player's name or score changes. This keeps the information shown + to server queries up to date. + </summary> + </member> + <member name="M:Steamworks.SteamServer.SetKey(System.String,System.String)"> + <summary> + Sets a Key Value. These can be anything you like, and are accessible + when querying servers from the server list. + + Information describing gamemodes are common here. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ClearKeys"> + <summary> + Remove all key values + </summary> + </member> + <member name="M:Steamworks.SteamServer.BeginAuthSession(System.Byte[],Steamworks.SteamId)"> + <summary> + Start authorizing a ticket. This user isn't authorized yet. Wait for a call to OnAuthChange. + </summary> + </member> + <member name="M:Steamworks.SteamServer.EndSession(Steamworks.SteamId)"> + <summary> + Forget this guy. They're no longer in the game. + </summary> + </member> + <member name="M:Steamworks.SteamServer.GetOutgoingPacket(Steamworks.Data.OutgoingPacket@)"> + <summary> + If true, Steam wants to send a packet. You should respond by sending + this packet in an unconnected way to the returned Address and Port. + </summary> + <param name="packet">Packet to send. The Data passed is pooled - so use it immediately.</param> + <returns>True if we want to send a packet</returns> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.Byte[],System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.IntPtr,System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.UserHasLicenseForApp(Steamworks.SteamId,Steamworks.AppId)"> + <summary> + Does the user own this app (which could be DLC) + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.RequestUserStatsAsync(Steamworks.SteamId)"> + <summary> + Downloads stats for the user + If the user has no stats will return fail + these stats will only be auto-updated for clients playing on the server + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Unlocks the specified achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.ClearAchievement(Steamworks.SteamId,System.String)"> + <summary> + Resets the unlock status of an achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Return true if available, exists and unlocked + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.StoreUserStats(Steamworks.SteamId)"> + <summary> + Once you've set a stat change on a user you need to commit your changes. + You can do that using this function. The callback will let you know if + your action succeeded, but most of the time you can fire and forget. + </summary> + </member> + <member name="T:Steamworks.SteamUGC"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUGC.OnDownloadItemResult"> + <summary> + Posted after Download call + </summary> + </member> + <member name="M:Steamworks.SteamUGC.Download(Steamworks.Data.PublishedFileId,System.Boolean)"> + <summary> + Start downloading this item. You'll get notified of completion via OnDownloadItemResult. + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="highPriority">If true this should go straight to the top of the download list</param> + <returns>true if nothing went wrong and the download is started</returns> + </member> + <member name="M:Steamworks.SteamUGC.DownloadAsync(Steamworks.Data.PublishedFileId,System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Will attempt to download this item asyncronously - allowing you to instantly react to its installation + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="progress">An optional callback</param> + <param name="ct">Allows you to send a message to cancel the download anywhere during the process</param> + <param name="milisecondsUpdateDelay">How often to call the progress function</param> + <returns>true if downloaded and installed correctly</returns> + </member> + <member name="M:Steamworks.SteamUGC.QueryFileAsync(Steamworks.Data.PublishedFileId)"> + <summary> + Utility function to fetch a single item. Internally this uses Ugc.FileQuery - + which you can use to query multiple items if you need to. + </summary> + </member> + <member name="T:Steamworks.SteamUser"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the Steam client now has a working connection to the Steam servers. + Usually this will have occurred before the game has launched, and should only be seen if the + user has dropped connection due to a networking issue or a Steam server update. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServerConnectFailure"> + <summary> + Called when a connection attempt has failed. + This will occur periodically if the Steam client is not connected, + and has failed when retrying to establish a connection. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersDisconnected"> + <summary> + Called if the client has lost connection to the Steam servers. + Real-time services will be disabled until a matching OnSteamServersConnected has been posted. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnClientGameServerDeny"> + <summary> + Sent by the Steam server to the client telling it to disconnect from the specified game server, + which it may be in the process of or already connected to. + The game client should immediately disconnect upon receiving this message. + This can usually occur if the user doesn't have rights to play on the game server. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnLicensesUpdated"> + <summary> + Called whenever the users licenses (owned packages) changes. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnValidateAuthTicketResponse"> + <summary> + Called when an auth ticket has been validated. + The first parameter is the steamid of this user + The second is the Steam ID that owns the game, this will be different from the first + if the game is being borrowed via Steam Family Sharing + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGetAuthSessionTicketResponse"> + <summary> + Used internally for GetAuthSessionTicketAsync + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnMicroTxnAuthorizationResponse"> + <summary> + Called when a user has responded to a microtransaction authorization request. + ( appid, orderid, user authorized ) + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGameWebCallback"> + <summary> + Sent to your game in response to a steam://gamewebcallback/ command from a user clicking a link in the Steam overlay browser. + You can use this to add support for external site signups where you want to pop back into the browser after some web page + signup sequence, and optionally get back some detail about that. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnDurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, + half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.SteamUser.VoiceRecord"> + <summary> + Starts/Stops voice recording. + Once started, use GetAvailableVoice and GetVoice to get the data, and then call StopVoiceRecording + when the user has released their push-to-talk hotkey or the game session has completed. + </summary> + </member> + <member name="P:Steamworks.SteamUser.HasVoiceData"> + <summary> + Returns true if we have voice data waiting to be read + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceData(System.IO.Stream)"> + <summary> + Reads the voice data and returns the number of bytes written. + The compressed data can be transmitted by your application and decoded back into raw audio data using + DecompressVoice on the other side. The compressed data provided is in an arbitrary format and is not meant to be played directly. + This should be called once per frame, and at worst no more than four times a second to keep the microphone input delay as low as + possible. Calling this any less may result in gaps in the returned stream. + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceDataBytes"> + <summary> + Reads the voice data and returns the bytes. You should obviously ideally be using + ReadVoiceData because it won't be creating a new byte array every call. But this + makes it easier to get it working, so let the babies have their bottle. + </summary> + </member> + <member name="M:Steamworks.SteamUser.DecompressVoice(System.IO.Stream,System.Int32,System.IO.Stream)"> + <summary> + Decodes the compressed voice data returned by GetVoice. + The output data is raw single-channel 16-bit PCM audio.The decoder supports any sample rate from 11025 to 48000. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicket"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicketAsync(System.Double)"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + This waits for a positive response from the backend before returning the ticket. This means + the ticket is definitely ready to go as soon as it returns. Will return null if the callback + times out or returns negatively. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsBehindNAT"> + <summary> + Checks if the current users looks like they are behind a NAT device. + This is only valid if the user is connected to the Steam servers and may not catch all forms of NAT. + </summary> + </member> + <member name="P:Steamworks.SteamUser.SteamLevel"> + <summary> + Gets the Steam level of the user, as shown on their Steam community profile. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetStoreAuthUrlAsync(System.String)"> + <summary> + Requests a URL which authenticates an in-game browser for store check-out, and then redirects to the specified URL. + As long as the in-game browser accepts and handles session cookies, Steam microtransaction checkout pages will automatically recognize the user instead of presenting a login page. + NOTE: The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. + NOTE: The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneVerified"> + <summary> + Checks whether the current user has verified their phone number. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsTwoFactorEnabled"> + <summary> + Checks whether the current user has Steam Guard two factor authentication enabled on their account. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneIdentifying"> + <summary> + Checks whether the user's phone number is used to uniquely identify them. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneRequiringVerification"> + <summary> + Checks whether the current user's phone number is awaiting (re)verification. + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync(System.Byte[])"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + If you get a null result from this it's probably because you're calling it too often. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetDurationControl"> + <summary> + Get anti indulgence / duration control + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementIconFetched"> + <summary> + called when the achivement icon is loaded + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsReceived"> + <summary> + called when the latests stats and achievements have been received + from the server + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsStored"> + <summary> + result of a request to store the user stats for a game + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementProgress"> + <summary> + result of a request to store the achievements for a game, or an + "indicate progress" call. If both m_nCurProgress and m_nMaxProgress + are zero, that means the achievement has been fully unlocked + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsUnloaded"> + <summary> + Callback indicating that a user's stats have been unloaded + </summary> + </member> + <member name="P:Steamworks.SteamUserStats.Achievements"> + <summary> + Get the available achievements + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.IndicateAchievementProgress(System.String,System.Int32,System.Int32)"> + <summary> + Show the user a pop-up notification with the current progress toward an achievement. + Will return false if RequestCurrentStats has not completed and successfully returned + its callback, if the achievement doesn't exist/has unpublished changes in the app's + Steamworks Admin page, or if the achievement is unlocked. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.PlayerCountAsync"> + <summary> + Tries to get the number of players currently playing this game. + Or -1 if failed. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.StoreStats"> + <summary> + Send the changed stats and achievements data to the server for permanent storage. + If this fails then nothing is sent to the server. It's advisable to keep trying until the call is successful. + This call can be rate limited. Call frequency should be on the order of minutes, rather than seconds.You should only be calling this during major state changes such as the end of a round, the map changing, or the user leaving a server. This call is required to display the achievement unlock notification dialog though, so if you have called SetAchievement then it's advisable to call this soon after that. + If you have stats or achievements that you have saved locally but haven't uploaded with this function when your application process ends then this function will automatically be called. + You can find additional debug information written to the %steam_install%\logs\stats_log.txt file. + This function returns true upon success if : + RequestCurrentStats has completed and successfully returned its callback AND + the current game has stats associated with it in the Steamworks Partner backend, and those stats are published. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestCurrentStats"> + <summary> + Asynchronously request the user's current stats and achievements from the server. + You must always call this first to get the initial status of stats and achievements. + Only after the resulting callback comes back can you start calling the rest of the stats + and achievement functions for the current user. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestGlobalStatsAsync(System.Int32)"> + <summary> + Asynchronously fetches global stats data, which is available for stats marked as + "aggregated" in the App Admin panel of the Steamworks website. + You must have called RequestCurrentStats and it needs to return successfully via + its callback prior to calling this. + </summary> + <param name="days">How many days of day-by-day history to retrieve in addition to the overall totals. The limit is 60.</param> + <returns>OK indicates success, InvalidState means you need to call RequestCurrentStats first, Fail means the remote call failed</returns> + </member> + <member name="M:Steamworks.SteamUserStats.FindOrCreateLeaderboardAsync(System.String,Steamworks.Data.LeaderboardSort,Steamworks.Data.LeaderboardDisplay)"> + <summary> + Gets a leaderboard by name, it will create it if it's not yet created. + Leaderboards created with this function will not automatically show up in the Steam Community. + You must manually set the Community Name field in the App Admin panel of the Steamworks website. + As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on + the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of + dynamically created leaderboards. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Int32)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Single)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Int32)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Single)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatInt(System.String)"> + <summary> + Get a Int stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatFloat(System.String)"> + <summary> + Get a float stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.ResetAll(System.Boolean)"> + <summary> + Practically wipes the slate clean for this user. If includeAchievements is true, will wipe + any achievements too. + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamUtils"> + <summary> + Interface which provides access to a range of miscellaneous utility functions + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnIpCountryChanged"> + <summary> + The country of the user changed + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnLowBatteryPower"> + <summary> + Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute + The parameter is the number of minutes left + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnSteamShutdown"> + <summary> + Called when Steam wants to shutdown + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnGamepadTextInputDismissed"> + <summary> + Big Picture gamepad text input has been closed. Parameter is true if text was submitted, false if cancelled etc. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceAppActive"> + <summary> + Returns the number of seconds since the application was active + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceComputerActive"> + <summary> + Returns the number of seconds since the user last moved the mouse etc + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamServerTime"> + <summary> + Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IpCountry"> + <summary> + returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + e.g "US" or "UK". + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImageSize(System.Int32,System.UInt32@,System.UInt32@)"> + <summary> + returns true if the image exists, and the buffer was successfully filled out + results are returned in RGBA format + the destination buffer size should be 4 * height * width * sizeof(char) + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImage(System.Int32)"> + <summary> + returns the image in RGBA format + </summary> + </member> + <member name="P:Steamworks.SteamUtils.UsingBatteryPower"> + <summary> + Returns true if we're using a battery (ie, a laptop not plugged in) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.CurrentBatteryPower"> + <summary> + Returns battery power [0-1] + </summary> + </member> + <member name="P:Steamworks.SteamUtils.OverlayNotificationPosition"> + <summary> + Sets the position where the overlay instance for the currently calling game should show notifications. + This position is per-game and if this function is called from outside of a game context it will do nothing. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsOverlayEnabled"> + <summary> + Returns true if the overlay is running and the user can access it. The overlay process could take a few seconds to + start and hook the game process, so this function will initially return false while the overlay is loading. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.DoesOverlayNeedPresent"> + <summary> + Normally this call is unneeded if your game has a constantly running frame loop that calls the + D3D Present API, or OGL SwapBuffers API every frame. + + However, if you have a game that only refreshes the screen on an event driven basis then that can break + the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + need to Present() to the screen any time an even needing a notification happens or when the overlay is + brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.CheckFileSignatureAsync(System.String)"> + <summary> + Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + of the partner site, for example to refuse to load modified executable files. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.ShowGamepadTextInput(Steamworks.GamepadTextInputMode,Steamworks.GamepadTextInputLineMode,System.String,System.Int32,System.String)"> + <summary> + Activates the Big Picture text input dialog which only supports gamepad input + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetEnteredGamepadText"> + <summary> + Returns previously entered text + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamUILanguage"> + <summary> + returns the language the steam client is running in, you probably want + Apps.CurrentGameLanguage instead, this is for very special usage cases + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamRunningInVR"> + <summary> + returns true if Steam itself is running in VR mode + </summary> + </member> + <member name="M:Steamworks.SteamUtils.SetOverlayNotificationInset(System.Int32,System.Int32)"> + <summary> + Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamInBigPictureMode"> + <summary> + returns true if Steam and the Steam Overlay are running in Big Picture mode + Games much be launched through the Steam client to enable the Big Picture overlay. During development, + a game can be added as a non-steam game to the developers library to test this feature + </summary> + </member> + <member name="M:Steamworks.SteamUtils.StartVRDashboard"> + <summary> + ask SteamUI to create and render its OpenVR dashboard + </summary> + </member> + <member name="P:Steamworks.SteamUtils.VrHeadsetStreaming"> + <summary> + Set whether the HMD content will be streamed via Steam In-Home Streaming + If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + (this is useful for games that have asymmetric multiplayer gameplay) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamChinaLauncher"> + <summary> + Returns whether this steam client is a Steam China specific client, vs the global client + </summary> + </member> + <member name="T:Steamworks.SteamVideo"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="P:Steamworks.SteamVideo.IsBroadcasting"> + <summary> + Return true if currently using Steam's live broadcasting + </summary> + </member> + <member name="P:Steamworks.SteamVideo.NumViewers"> + <summary> + If we're broadcasting, will return the number of live viewers + </summary> + </member> + <member name="P:Steamworks.Controller.ActionSet"> + <summary> + Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + our state loops, instead of trying to place it in all of your state transitions. + </summary> + </member> + <member name="M:Steamworks.Controller.GetDigitalState(System.String)"> + <summary> + Returns the current state of the supplied digital game action + </summary> + </member> + <member name="M:Steamworks.Controller.GetAnalogState(System.String)"> + <summary> + Returns the current state of these supplied analog game action + </summary> + </member> + <member name="P:Steamworks.Friend.IsMe"> + <summary> + Returns true if this is the local user + </summary> + </member> + <member name="P:Steamworks.Friend.IsFriend"> + <summary> + Return true if this is a friend + </summary> + </member> + <member name="P:Steamworks.Friend.IsBlocked"> + <summary> + Returns true if you have this user blocked + </summary> + </member> + <member name="P:Steamworks.Friend.IsPlayingThisGame"> + <summary> + Return true if this user is playing the game we're running + </summary> + </member> + <member name="P:Steamworks.Friend.IsOnline"> + <summary> + Returns true if this friend is online + </summary> + </member> + <member name="M:Steamworks.Friend.RequestInfoAsync"> + <summary> + Sometimes we don't know the user's name. This will wait until we have + downloaded the information on this user. + </summary> + </member> + <member name="P:Steamworks.Friend.IsAway"> + <summary> + Returns true if this friend is marked as away + </summary> + </member> + <member name="P:Steamworks.Friend.IsBusy"> + <summary> + Returns true if this friend is marked as busy + </summary> + </member> + <member name="P:Steamworks.Friend.IsSnoozing"> + <summary> + Returns true if this friend is marked as snoozing + </summary> + </member> + <member name="M:Steamworks.Friend.InviteToGame(System.String)"> + <summary> + Invite this friend to the game that we are playing + </summary> + </member> + <member name="M:Steamworks.Friend.SendMessage(System.String)"> + <summary> + Sends a message to a Steam friend. Returns true if success + </summary> + </member> + <member name="M:Steamworks.Friend.RequestUserStatsAsync"> + <summary> + Tries to get download the latest user stats + </summary> + <returns>True if successful, False if failure</returns> + </member> + <member name="M:Steamworks.Friend.GetStatFloat(System.String,System.Single)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetStatInt(System.String,System.Int32)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievement(System.String,System.Boolean)"> + <summary> + Gets a user achievement state. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievementUnlockTime(System.String)"> + <summary> + Gets a the time this achievement was unlocked. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <returns>The time unlocked. If it wasn't unlocked, or you haven't downloaded the stats yet - will return DateTime.MinValue</returns> + </member> + <member name="P:Steamworks.InventoryDef.Name"> + <summary> + Shortcut to call GetProperty( "name" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Description"> + <summary> + Shortcut to call GetProperty( "description" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrl"> + <summary> + Shortcut to call GetProperty( "icon_url" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrlLarge"> + <summary> + Shortcut to call GetProperty( "icon_url_large" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.PriceCategory"> + <summary> + Shortcut to call GetProperty( "price_category" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Type"> + <summary> + Shortcut to call GetProperty( "type" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IsGenerator"> + <summary> + Returns true if this is an item that generates an item, rather + than something that is actual an item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.ExchangeSchema"> + <summary> + Shortcut to call GetProperty( "exchange" ) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipes"> + <summary> + Get a list of exchanges that are available to make this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Marketable"> + <summary> + Shortcut to call GetBoolProperty( "marketable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Tradable"> + <summary> + Shortcut to call GetBoolProperty( "tradable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Created"> + <summary> + Gets the property timestamp + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Modified"> + <summary> + Gets the property modified + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty(System.String)"> + <summary> + Get a specific property by name + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetBoolProperty(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty``1(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Properties"> + <summary> + Gets a list of all properties on this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalPrice"> + <summary> + Returns the price of this item in the local currency (SteamInventory.Currency) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalBasePrice"> + <summary> + If the price has been discounted, LocalPrice will differ from LocalBasePrice + (assumed, this isn't documented) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipesContainingThis"> + <summary> + Return a list of recepies that contain this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Properties"> + <summary> + Only available if the result set was created with the getproperties + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsNoTrade"> + <summary> + This item is account-locked and cannot be traded or given away. + This is an item status flag which is permanently attached to specific item instances + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsRemoved"> + <summary> + The item has been destroyed, traded away, expired, or otherwise invalidated. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsConsumed"> + <summary> + The item quantity has been decreased by 1 via ConsumeItem API. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="M:Steamworks.InventoryItem.ConsumeAsync(System.Int32)"> + <summary> + Consumes items from a user's inventory. If the quantity of the given item goes to zero, it is permanently removed. + Once an item is removed it cannot be recovered.This is not for the faint of heart - if your game implements item removal at all, + a high-friction UI confirmation process is highly recommended.ConsumeItem can be restricted to certain item definitions or fully + blocked via the Steamworks website to minimize support/abuse issues such as the classic "my brother borrowed my laptop and deleted all of my rare items". + </summary> + </member> + <member name="M:Steamworks.InventoryItem.SplitStackAsync(System.Int32)"> + <summary> + Split stack into two items + </summary> + </member> + <member name="M:Steamworks.InventoryItem.AddAsync(Steamworks.InventoryItem,System.Int32)"> + <summary> + Add x units of the target item to this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Acquired"> + <summary> + Will try to return the date that this item was aquired. You need to have for the items + with their properties for this to work. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Origin"> + <summary> + Tries to get the origin property. Need properties for this to work. + Will return a string like "market" + </summary> + </member> + <member name="T:Steamworks.InventoryItem.Amount"> + <summary> + Small utility class to describe an item with a quantity + </summary> + </member> + <member name="T:Steamworks.InventoryRecipe"> + <summary> + A structured description of an item exchange + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.DefinitionId"> + <summary> + The definition ID of the ingredient. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Definition"> + <summary> + If we don't know about this item definition this might be null. + In which case, DefinitionId should still hold the correct id. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Count"> + <summary> + The amount of this item needed. Generally this will be 1. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Result"> + <summary> + The item that this will create. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredients"> + <summary> + The items, with quantity required to create this item. + </summary> + </member> + <member name="M:Steamworks.InventoryResult.BelongsTo(Steamworks.SteamId)"> + <summary> + Checks whether an inventory result handle belongs to the specified Steam ID. + This is important when using Deserialize, to verify that a remote player is not pretending to have a different user's inventory + </summary> + </member> + <member name="M:Steamworks.InventoryResult.Serialize"> + <summary> + Serialized result sets contain a short signature which can't be forged or replayed across different game sessions. + A result set can be serialized on the local client, transmitted to other players via your game networking, and + deserialized by the remote players.This is a secure way of preventing hackers from lying about posessing + rare/high-value items. Serializes a result set with signature bytes to an output buffer.The size of a serialized + result depends on the number items which are being serialized.When securely transmitting items to other players, + it is recommended to use GetItemsByID first to create a minimal result set. + Results have a built-in timestamp which will be considered "expired" after an hour has elapsed.See DeserializeResult + for expiration handling. + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.Owner"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.MetaData"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.JoinAsync"> + <summary> + Will attempt to join the party. If successful will return a connection string. + If failed, will return null + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.OnReservationCompleted(Steamworks.SteamId)"> + <summary> + When a user follows your beacon, Steam will reserve one of the open party slots for them, and send your game a ReservationNotification callback. + When that user joins your party, call OnReservationCompleted to notify Steam that the user has joined successfully + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.CancelReservation(Steamworks.SteamId)"> + <summary> + To cancel a reservation (due to timeout or user input), call this. + Steam will open a new reservation slot. + Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.Destroy"> + <summary> + Turn off the beacon + </summary> + </member> + <member name="T:Steamworks.SteamServerInit"> + <summary> + Used to set up the server. + The variables in here are all required to be set, and can't be changed once the server is created. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.VersionString"> + <summary> + The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. + If you go into the dedicated server tab on steamworks you'll be able to server the latest version. If this version number is + less than that latest version then your server won't show. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.ModDir"> + <summary> + This should be the same directory game where gets installed into. Just the folder name, not the whole path. I.e. "Rust", "Garrysmod". + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.GameDescription"> + <summary> + The game description. Setting this to the full name of your game is recommended. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.DedicatedServer"> + <summary> + Is a dedicated server + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithRandomSteamPort"> + <summary> + Set the Steam quert port + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithQueryShareGamePort"> + <summary> + If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE into usQueryPort, then it causes the game server API to use + "GameSocketShare" mode, which means that the game is responsible for sending and receiving UDP packets for the master + server updater. + + More info about this here: https://partner.steamgames.com/doc/api/ISteamGameServer#HandleIncomingPacket + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewCommunityFile"> + <summary> + Create a Normal Workshop item that can be subscribed to + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewMicrotransactionFile"> + <summary> + Workshop item that is meant to be voted on for the purpose of selling in-game + </summary> + </member> + <member name="F:Steamworks.Ugc.PublishResult.NeedsWorkshopAgreement"> + <summary> + https://partner.steamgames.com/doc/features/workshop/implementation#Legal + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Id"> + <summary> + The actual ID of this file + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Title"> + <summary> + The given title of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Description"> + <summary> + The description of this item, in your local language if available + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Tags"> + <summary> + A list of tags for this item, all lowercase + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CreatorApp"> + <summary> + App Id of the app that created this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ConsumerApp"> + <summary> + App Id of the app that will consume this item. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Owner"> + <summary> + User who created this content + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Score"> + <summary> + The bayesian average for up votes / total votes, between [0,1] + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Created"> + <summary> + Time when the published item was created + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Updated"> + <summary> + Time when the published item was last updated + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPublic"> + <summary> + True if this is publically visible + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsFriendsOnly"> + <summary> + True if this item is only visible by friends of the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPrivate"> + <summary> + True if this is only visible to the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsBanned"> + <summary> + True if this item has been banned + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsAcceptedForUse"> + <summary> + Whether the developer of this app has specifically flagged this item as accepted in the Workshop + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesUp"> + <summary> + The number of upvotes of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesDown"> + <summary> + The number of downvotes of this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Download(System.Boolean)"> + <summary> + Start downloading this item. + If this returns false the item isn't getting downloaded. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesTotal"> + <summary> + If we're downloading, how big the total download is + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesDownloaded"> + <summary> + If we're downloading, how much we've downloaded + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.SizeBytes"> + <summary> + If we're installed, how big is the install + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadAmount"> + <summary> + If we're downloading our current progress as a delta betwen 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.HasTag(System.String)"> + <summary> + A case insensitive check for tag + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Subscribe"> + <summary> + Allows the user to subscribe to this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.DownloadAsync(System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Allows the user to subscribe to download this item asyncronously + If CancellationToken is default then there is 60 seconds timeout + Progress will be set to 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Unsubscribe"> + <summary> + Allows the user to unsubscribe from this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.AddFavorite"> + <summary> + Adds item to user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.RemoveFavorite"> + <summary> + Removes item from user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Vote(System.Boolean)"> + <summary> + Allows the user to rate a workshop item up or down. + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.GetUserVote"> + <summary> + Gets the current users vote on the item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Url"> + <summary> + Return a URL to view this item online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ChangelogUrl"> + <summary> + The URl to view this item's changelog + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CommentsUrl"> + <summary> + The URL to view the comments on this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DiscussUrl"> + <summary> + The URL to discuss this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.StatsUrl"> + <summary> + The URL to view this items stats online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.PreviewImageUrl"> + <summary> + The URL to the preview image for this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Edit"> + <summary> + Edit this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAnyTag"> + <summary> + Found items must have at least one of the defined tags + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAllTags"> + <summary> + Found items must have all defined tags + </summary> + </member> + <member name="P:Steamworks.Epoch.Current"> + <summary> + Returns the current Unix Epoch + </summary> + </member> + <member name="M:Steamworks.Epoch.ToDateTime(System.Decimal)"> + <summary> + Convert an epoch to a datetime + </summary> + </member> + <member name="M:Steamworks.Epoch.FromDateTime(System.DateTime)"> + <summary> + Convert a DateTime to a unix time + </summary> + </member> + <member name="M:Steamworks.Helpers.TakeBuffer(System.Int32)"> + <summary> + Returns a buffer. This will get returned and reused later on. + </summary> + </member> + <member name="T:Steamworks.PreserveAttribute"> + <summary> + Prevent unity from stripping shit we depend on + https://docs.unity3d.com/Manual/ManagedCodeStripping.html + </summary> + </member> + </members> +</doc> diff --git a/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Posix.deps.json b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Posix.deps.json new file mode 100644 index 0000000..d082b94 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Posix.deps.json @@ -0,0 +1,47 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "Facepunch.Steamworks.Posix/1.0.0": { + "dependencies": { + "NETStandard.Library": "2.0.3" + }, + "runtime": { + "Facepunch.Steamworks.Posix.dll": {} + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + } + } + }, + "libraries": { + "Facepunch.Steamworks.Posix/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + } + } +}
\ No newline at end of file diff --git a/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Posix.dll b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Posix.dll Binary files differnew file mode 100644 index 0000000..b71c5d0 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Posix.dll diff --git a/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Posix.pdb b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Posix.pdb Binary files differnew file mode 100644 index 0000000..9cc1efa --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Posix.pdb diff --git a/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Posix.xml b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Posix.xml new file mode 100644 index 0000000..414ee29 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Posix.xml @@ -0,0 +1,3474 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Facepunch.Steamworks.Posix</name> + </assembly> + <members> + <member name="T:Steamworks.CallResult`1"> + <summary> + An awaitable version of a SteamAPICall_t + </summary> + </member> + <member name="M:Steamworks.CallResult`1.OnCompleted(System.Action)"> + <summary> + This gets called if IsComplete returned false on the first call. + The Action "continues" the async call. We pass it to the Dispatch + to be called when the callback returns. + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetResult"> + <summary> + Gets the result. This is called internally by the async shit. + </summary> + </member> + <member name="P:Steamworks.CallResult`1.IsCompleted"> + <summary> + Return true if complete or failed + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetAwaiter"> + <summary> + This is what makes this struct awaitable + </summary> + </member> + <member name="T:Steamworks.ICallbackData"> + <summary> + Gives us a generic way to get the CallbackId of structs + </summary> + </member> + <member name="M:Steamworks.AuthTicket.Cancel"> + <summary> + Cancels a ticket. + You should cancel your ticket when you close the game or leave a server. + </summary> + </member> + <member name="T:Steamworks.Dispatch"> + <summary> + Responsible for all callback/callresult handling + + This manually pumps Steam's message queue and dispatches those + events to any waiting callbacks/callresults. + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnDebugCallback"> + <summary> + If set then we'll call this function every time a callback is generated. + + This is SLOW!! - it's for debugging - don't keep it on all the time. If you want to access a specific + callback then please create an issue on github and I'll add it! + + Params are : [Callback Type] [Callback Contents] [server] + + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnException"> + <summary> + Called if an exception happens during a callback/callresult. + This is needed because the exception isn't always accessible when running + async.. and can fail silently. With this hooked you won't be stuck wondering + what happened. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Init"> + <summary> + This gets called from Client/Server Init + It's important to switch to the manual dispatcher + </summary> + </member> + <member name="F:Steamworks.Dispatch.runningFrame"> + <summary> + Make sure we don't call Frame in a callback - because that'll cause some issues for everyone. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Frame(Steamworks.Data.HSteamPipe)"> + <summary> + Calls RunFrame and processes events from this Steam Pipe + </summary> + </member> + <member name="F:Steamworks.Dispatch.actionsToCall"> + <summary> + To be safe we don't call the continuation functions while iterating + the Callback list. This is maybe overly safe because the only way this + could be an issue is if the callback list is modified in the continuation + which would only happen if starting or shutting down in the callback. + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessCallback(Steamworks.Dispatch.CallbackMsg_t,System.Boolean)"> + <summary> + A callback is a general global message + </summary> + </member> + <member name="M:Steamworks.Dispatch.CallbackToString(Steamworks.CallbackType,System.IntPtr,System.Int32)"> + <summary> + Given a callback, try to turn it into a string + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessResult(Steamworks.Dispatch.CallbackMsg_t)"> + <summary> + A result is a reply to a specific command + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopClientAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopServerAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.OnCallComplete``1(Steamworks.Data.SteamAPICall_t,System.Action,System.Boolean)"> + <summary> + Watch for a steam api call + </summary> + </member> + <member name="M:Steamworks.Dispatch.Install``1(System.Action{``0},System.Boolean)"> + <summary> + Install a global callback. The passed function will get called if it's all good. + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.Numeric"> + <summary> + The score is just a simple numerical value + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeSeconds"> + <summary> + The score represents a time, in seconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeMilliSeconds"> + <summary> + The score represents a time, in milliseconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Ascending"> + <summary> + The top-score is the lowest number + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Descending"> + <summary> + The top-score is the highest number + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Unreliable"> + <summary> + Send the message unreliably. Can be lost. Messages *can* be larger than a + single MTU (UDP packet), but there is no retransmission, so if any piece + of the message is lost, the entire message will be dropped. + + The sending API does have some knowledge of the underlying connection, so + if there is no NAT-traversal accomplished or there is a recognized adjustment + happening on the connection, the packet will be batched until the connection + is open again. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoNagle"> + <summary> + Disable Nagle's algorithm. + By default, Nagle's algorithm is applied to all outbound messages. This means + that the message will NOT be sent immediately, in case further messages are + sent soon after you send this, which can be grouped together. Any time there + is enough buffered data to fill a packet, the packets will be pushed out immediately, + but partially-full packets not be sent until the Nagle timer expires. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoDelay"> + <summary> + If the message cannot be sent very soon (because the connection is still doing some initial + handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable + messages. Using this flag on reliable messages is invalid. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Reliable"> + Reliable message send. Can send up to 0.5mb in a single message. + Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for + efficient sends of large chunks of data. + </member> + <member name="P:Steamworks.Data.NetIdentity.LocalHost"> + <summary> + Return a NetIdentity that represents LocalHost + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.IsLocalHost"> + <summary> + Return true if this identity is localhost + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.SteamId)~Steamworks.Data.NetIdentity"> + <summary> + Convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetAddress)~Steamworks.Data.NetIdentity"> + <summary> + Set the specified Address + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetIdentity)~Steamworks.SteamId"> + <summary> + Automatically convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="P:Steamworks.Data.NetIdentity.SteamId"> + <summary> + Returns NULL if we're not a SteamId + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.Address"> + <summary> + Returns NULL if we're not a NetAddress + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.ToString"> + <summary> + We override tostring to provide a sensible representation + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Port"> + <summary> + The Port. This is redundant documentation. + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.AnyIp(System.UInt16)"> + <summary> + Any IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.LocalHost(System.UInt16)"> + <summary> + Localhost IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.String,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.Net.IPAddress,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Cleared"> + <summary> + Set everything to zero + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv6AllZeros"> + <summary> + Return true if the IP is ::0. (Doesn't check port.) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv4"> + <summary> + Return true if IP is mapped IPv4 + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsLocalHost"> + <summary> + Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Address"> + <summary> + Get the Address section + </summary> + </member> + <member name="T:Steamworks.Data.Connection"> + <summary> + Used as a base to create your client connection. This creates a socket + to a single connection. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Accept"> + <summary> + Accept an incoming connection that has been received on a listen socket. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Close(System.Boolean,System.Int32,System.String)"> + <summary> + Disconnects from the remote host and invalidates the connection handle. Any unread data on the connection is discarded.. + reasonCode is defined and used by you. + </summary> + </member> + <member name="P:Steamworks.Data.Connection.UserData"> + <summary> + Get/Set connection user data + </summary> + </member> + <member name="P:Steamworks.Data.Connection.ConnectionName"> + <summary> + A name for the connection, used mostly for debugging + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.IntPtr,System.Int32,Steamworks.Data.SendType)"> + <summary> + This is the best version to use. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],System.Int32,System.Int32,Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.String,Steamworks.Data.SendType)"> + <summary> + This creates a ton of garbage - so don't do anything with this beyond testing! + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Flush"> + <summary> + Flush any messages waiting on the Nagle timer and send them at the next transmission + opportunity (often that means right now). + </summary> + </member> + <member name="M:Steamworks.Data.Connection.DetailedStatus"> + <summary> + Returns detailed connection stats in text format. Useful + for dumping to a log, etc. + </summary> + <returns>Plain text connection info</returns> + </member> + <member name="T:Steamworks.Data.ConnectionInfo"> + <summary> + Describe the state of a connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.State"> + <summary> + High level state of the connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Address"> + <summary> + Remote address. Might be all 0's if we don't know it, or if this is N/A. + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Identity"> + <summary> + Who is on the other end? Depending on the connection type and phase of the connection, we might not know + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.EndReason"> + <summary> + Basic cause of the connection termination or problem. + </summary> + </member> + <member name="T:Steamworks.Data.NetPingLocation"> + <summary> + + Object that describes a "location" on the Internet with sufficient + detail that we can reasonably estimate an upper bound on the ping between + the two hosts, even if a direct route between the hosts is not possible, + and the connection must be routed through the Steam Datagram Relay network. + This does not contain any information that identifies the host. Indeed, + if two hosts are in the same building or otherwise have nearly identical + networking characteristics, then it's valid to use the same location + object for both of them. + + NOTE: This object should only be used in the same process! Do not serialize it, + send it over the wire, or persist it in a file or database! If you need + to do that, convert it to a string representation using the methods in + ISteamNetworkingUtils(). + + </summary> + </member> + <member name="M:Steamworks.Data.NetPingLocation.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + Estimate the round-trip latency between two arbitrary locations, in + milliseconds. This is a conservative estimate, based on routing through + the relay network. For most basic relayed connections, this ping time + will be pretty accurate, since it will be based on the route likely to + be actually used. + + If a direct IP route is used (perhaps via NAT traversal), then the route + will be different, and the ping time might be better. Or it might actually + be a bit worse! Standard IP routing is frequently suboptimal! + + But even in this case, the estimate obtained using this method is a + reasonable upper bound on the ping time. (Also it has the advantage + of returning immediately and not sending any packets.) + + In a few cases we might not able to estimate the route. In this case + a negative value is returned. k_nSteamNetworkingPing_Failed means + the reason was because of some networking difficulty. (Failure to + ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + currently answer the question for some other reason. + + Do you need to be able to do this from a backend/matchmaking server? + You are looking for the "ticketgen" library. + </member> + <member name="M:Steamworks.Data.Socket.Close"> + <summary> + Destroy a listen socket. All the connections that were accepting on the listen + socket are closed ungracefully. + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.State"> + <summary> + True if unlocked + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.UnlockTime"> + <summary> + Should hold the unlock time if State is true + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIcon"> + <summary> + Gets the icon of the achievement. This can return a null image even though the image exists if the image + hasn't been downloaded by Steam yet. You can use GetIconAsync if you want to wait for the image to be downloaded. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIconAsync(System.Int32)"> + <summary> + Gets the icon of the achievement, waits for it to load if we have to + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.GlobalUnlocked"> + <summary> + Returns the fraction (0-1) of users who have unlocked the specified achievement, or -1 if no data available. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Trigger(System.Boolean)"> + <summary> + Make this achievement earned + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Clear"> + <summary> + Reset this achievement to not achieved + </summary> + </member> + <member name="T:Steamworks.Data.DurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Appid"> + <summary> + appid generating playtime + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Applicable"> + <summary> + is duration control applicable to user + game combination + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeInLastFiveHours"> + <summary> + playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeToday"> + <summary> + playtime on current calendar day + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Progress"> + <summary> + recommended progress + </summary> + </member> + <member name="P:Steamworks.Data.Leaderboard.Name"> + <summary> + the name of a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.ReplaceScore(System.Int32,System.Int32[])"> + <summary> + Submit your score and replace your old score even if it was better + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.SubmitScoreAsync(System.Int32,System.Int32[])"> + <summary> + Submit your new score, but won't replace your high score if it's lower + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.AttachUgc(Steamworks.Data.Ugc)"> + <summary> + Attaches a piece of user generated content the user's entry on a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAsync(System.Int32,System.Int32)"> + <summary> + Used to query for a sequential range of leaderboard entries by leaderboard Sort. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAroundUserAsync(System.Int32,System.Int32)"> + <summary> + Used to retrieve leaderboard entries relative a user's entry. If there are not enough entries in the leaderboard + before or after the user's entry, Steam will adjust the range to try to return the number of entries requested. + For example, if the user is #1 on the leaderboard and start is set to -2, end is set to 2, Steam will return the first + 5 entries in the leaderboard. If The current user has no entry, this will return null. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresFromFriendsAsync"> + <summary> + Used to retrieve all leaderboard entries for friends of the current user + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Join"> + <summary> + Try to join this room. Will return RoomEnter.Success on success, + and anything else is a failure + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Leave"> + <summary> + Leave a lobby; this will take effect immediately on the client side + other users in the lobby will be notified by a LobbyChatUpdate_t callback + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.InviteFriend(Steamworks.SteamId)"> + <summary> + Invite another user to the lobby + will return true if the invite is successfully sent, whether or not the target responds + returns false if the local user is not connected to the Steam servers + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MemberCount"> + <summary> + returns the number of users in the specified lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Members"> + <summary> + Returns current members. Need to be in the lobby to see the users. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetData(System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetData(System.String,System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.DeleteData(System.String)"> + <summary> + Removes a metadata key from the lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Data"> + <summary> + Get all data for this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetMemberData(Steamworks.Friend,System.String)"> + <summary> + Gets per-user metadata for someone in this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetMemberData(System.String,System.String)"> + <summary> + Sets per-user metadata (for the local user implicitly) + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatString(System.String)"> + <summary> + Sends a string to the chat room + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatBytes(System.Byte[])"> + <summary> + Sends bytes the the chat room + this isn't exposed because there's no way to read raw bytes atm, + and I figure people can send json if they want something more advanced + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Refresh"> + <summary> + Refreshes metadata for a lobby you're not necessarily in right now + you never do this for lobbies you're a member of, only if your + this will send down all the metadata associated with a lobby + this is an asynchronous call + returns false if the local user is not connected to the Steam servers + results will be returned by a LobbyDataUpdate_t callback + if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MaxMembers"> + <summary> + Max members able to join this lobby. Cannot be over 250. + Can only be set by the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(Steamworks.SteamId)"> + <summary> + [SteamID variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(System.String,System.UInt16)"> + <summary> + [IP/Port variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetGameServer(System.UInt32@,System.UInt16@,Steamworks.SteamId@)"> + <summary> + Gets the details of the lobby's game server, if set. Returns true if the lobby is + valid and has a server set, otherwise returns false. + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Owner"> + <summary> + You must be the lobby owner to set the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.IsOwnedBy(Steamworks.SteamId)"> + <summary> + Check if the specified SteamId owns the lobby + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceClose"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceFar"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceWorldwide"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithKeyValue(System.String,System.String)"> + <summary> + Filter by specified key/value pair; string parameters + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithLower(System.String,System.Int32)"> + <summary> + Numerical filter where value is less than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithHigher(System.String,System.Int32)"> + <summary> + Numerical filter where value is greater than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must be equal to the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithNotEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must not equal the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.AddNumericalFilter(System.String,System.Int32,Steamworks.LobbyComparison)"> + <summary> + Test key, initialize numerical filter list if necessary, then add new numerical filter + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.OrderByNear(System.String,System.Int32)"> + <summary> + Order filtered results according to key/values nearest the provided key/value pair. + Can specify multiple near value filters; each successive filter is lower priority than the previous. + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithSlotsAvailable(System.Int32)"> + <summary> + returns only lobbies with the specified number of slots available + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithMaxResults(System.Int32)"> + <summary> + sets how many results to return, the lower the count the faster it is to download the lobby results + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.RequestAsync"> + <summary> + Run the query, get the matching lobbies + </summary> + </member> + <member name="T:Steamworks.Data.OutgoingPacket"> + <summary> + A server query packet. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Address"> + <summary> + Target IP address + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Port"> + <summary> + Target port + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Data"> + <summary> + This data is pooled. Make a copy if you don't use it immediately. + This buffer is also quite large - so pay attention to Size. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Size"> + <summary> + Size of the data + </summary> + </member> + <member name="T:Steamworks.Data.RemotePlaySession"> + <summary> + Represents a RemotePlaySession from the SteamRemotePlay interface + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.IsValid"> + <summary> + Returns true if this session was valid when created. This will stay true even + after disconnection - so be sure to watch SteamRemotePlay.OnSessionDisconnected + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.SteamId"> + <summary> + Get the SteamID of the connected user + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.ClientName"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.FormFactor"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagUser(Steamworks.SteamId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.SetLocation(System.String)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagPublishedFile(Steamworks.Data.PublishedFileId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="P:Steamworks.Data.ServerInfo.Tags"> + <summary> + Gets the individual tags for this server + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToHistory"> + <summary> + Add this server to our history list + If we're already in the history list, weill set the last played time to now + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.QueryRulesAsync"> + <summary> + If this server responds to source engine style queries, we'll be able to get a list of rules here + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromHistory"> + <summary> + Remove this server from our history list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToFavourites"> + <summary> + Add this server to our favourite list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromFavourites"> + <summary> + Remove this server from our favourite list + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultStatus(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Find out the status of an asynchronous inventory result handle. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultItems(Steamworks.Data.SteamInventoryResult_t,Steamworks.Data.SteamItemDetails_t[],System.UInt32@)"> + <summary> + Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultTimestamp(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.CheckResultSteamID(Steamworks.Data.SteamInventoryResult_t,Steamworks.SteamId)"> + <summary> + Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.DestroyResult(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Destroys a result handle and frees all associated memory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetAllItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + Captures the entire state of the current users Steam inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetItemsByID(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId@,System.UInt32)"> + <summary> + Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GrantPromoItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only). + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.ConsumeItem(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId,System.UInt32)"> + <summary> + ConsumeItem() removes items from the inventory permanently. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.SendItemDropHeartbeat"> + <summary> + Deprecated method. Playtime accounting is performed on the Steam servers. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.TriggerItemDrop(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryDefId)"> + <summary> + Playtime credit must be consumed and turned into item drops by your game. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.LoadItemDefinitions"> + <summary> + LoadItemDefinitions triggers the automatic load and refresh of item definitions. + </summary> + </member> + <member name="M:Steamworks.ISteamUserStats.DownloadLeaderboardEntriesForUsers(Steamworks.Data.SteamLeaderboard_t,Steamworks.SteamId[],System.Int32)"> + <summary> + Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.Interface"> + <summary> + An optional interface to use instead of deriving + </summary> + </member> + <member name="F:Steamworks.ConnectionManager.Connection"> + <summary> + The actual connection we're managing + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.ConnectionInfo"> + <summary> + The last received ConnectionInfo + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We're trying to connect! + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We started connecting to this guy + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + We got disconnected + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnMessage(System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Must call Accept or Close on the connection within a second or so + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection leaves + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnMessage(Steamworks.Data.Connection,Steamworks.Data.NetIdentity,System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message from a connection + </summary> + </member> + <member name="T:Steamworks.SocketManager"> + <summary> + Used as a base to create your networking server. This creates a socket + and listens/communicates with multiple queries. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Default behaviour is to accept every connection + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="P:Steamworks.ServerList.Base.AppId"> + <summary> + Which app we're querying. Defaults to the current app. + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnChanges"> + <summary> + When a new server is added, this function will get called + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnResponsiveServer"> + <summary> + Called for every responsive server + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Responsive"> + <summary> + A list of servers that responded. If you're only interested in servers that responded since you + last updated, then simply clear this list. + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Unresponsive"> + <summary> + A list of servers that were in the master list but didn't respond. + </summary> + </member> + <member name="M:Steamworks.ServerList.Base.RunQueryAsync(System.Single)"> + <summary> + Query the server list. Task result will be true when finished + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamApps"> + <summary> + Exposes a wide range of information and actions for applications and Downloadable Content (DLC). + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnDlcInstalled"> + <summary> + posted after the user gains ownership of DLC and that DLC is installed + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnNewLaunchParameters"> + <summary> + posted after the user gains executes a Steam URL with command line or query parameters + such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc + while the game is already running. The new params can be queried + with GetLaunchQueryParam and GetLaunchCommandLine + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribed"> + <summary> + Checks if the active user is subscribed to the current App ID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFamilySharing"> + <summary> + Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsLowVoilence"> + <summary> + Checks if the license owned by the user provides low violence depots. + Low violence depots are useful for copies sold in countries that have content restrictions + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsCybercafe"> + <summary> + Checks whether the current App ID license is for Cyber Cafes. + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsVACBanned"> + <summary> + CChecks if the user has a VAC ban on their account + </summary> + </member> + <member name="P:Steamworks.SteamApps.GameLanguage"> + <summary> + Gets the current language that the user has set. + This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AvailableLanguages"> + <summary> + Gets a list of the languages the current app supports. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsSubscribedToApp(Steamworks.AppId)"> + <summary> + Checks if the active user is subscribed to a specified AppId. + Only use this if you need to check ownership of another game related to yours, a demo for example. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsDlcInstalled(Steamworks.AppId)"> + <summary> + Checks if the user owns a specific DLC and if the DLC is installed + </summary> + </member> + <member name="M:Steamworks.SteamApps.PurchaseTime(Steamworks.AppId)"> + <summary> + Returns the time of the purchase of the app + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFreeWeekend"> + <summary> + Checks if the user is subscribed to the current app through a free weekend + This function will return false for users who have a retail or other type of license + Before using, please ask your Valve technical contact how to package and secure your free weekened + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcInformation"> + <summary> + Returns metadata for all available DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.UninstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="P:Steamworks.SteamApps.CurrentBetaName"> + <summary> + Returns null if we're not on a beta branch, else the name of the branch + </summary> + </member> + <member name="M:Steamworks.SteamApps.MarkContentCorrupt(System.Boolean)"> + <summary> + Allows you to force verify game content on next launch. + + If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), + you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit. + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstalledDepots(Steamworks.AppId)"> + <summary> + Gets a list of all installed depots for a given App ID in mount order + </summary> + </member> + <member name="M:Steamworks.SteamApps.AppInstallDir(Steamworks.AppId)"> + <summary> + Gets the install folder for a specific AppID. + This works even if the application is not installed, based on where the game would be installed with the default Steam library location. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsAppInstalled(Steamworks.AppId)"> + <summary> + The app may not actually be owned by the current user, they may have it left over from a free weekend, etc. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AppOwner"> + <summary> + Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed.. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetLaunchParam(System.String)"> + <summary> + Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. + Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. + Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + but it is advised that you not param names beginning with an underscore for your own features. + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcDownloadProgress(Steamworks.AppId)"> + <summary> + Gets the download progress for optional DLC. + </summary> + </member> + <member name="P:Steamworks.SteamApps.BuildId"> + <summary> + Gets the buildid of this app, may change at any time based on backend updates to the game. + Defaults to 0 if you're not running a build downloaded from steam. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetFileDetailsAsync(System.String)"> + <summary> + Asynchronously retrieves metadata details about a specific file in the depot manifest. + Currently provides: + </summary> + </member> + <member name="P:Steamworks.SteamApps.CommandLine"> + <summary> + Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. + This method of passing a connect string (used when joining via rich presence, accepting an + invite, etc) is preferable to passing the connect string on the operating system command + line, which is a security risk. In order for rich presence joins to go through this + path and not be placed on the OS command line, you must set a value in your app's + configuration on Steam. Ask Valve for help with this. + </summary> + </member> + <member name="M:Steamworks.SteamClient.Init(System.UInt32,System.Boolean)"> + <summary> + Initialize the steam client. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="P:Steamworks.SteamClient.IsLoggedOn"> + <summary> + Checks if the current user's Steam client is connected to the Steam servers. + If it's not then no real-time services provided by the Steamworks API will be enabled. The Steam + client will automatically be trying to recreate the connection as often as possible. When the + connection is restored a SteamServersConnected_t callback will be posted. + You usually don't need to check for this yourself. All of the API calls that rely on this will + check internally. Forcefully disabling stuff when the player loses access is usually not a + very good experience for the player and you could be preventing them from accessing APIs that do not + need a live connection to Steam. + </summary> + </member> + <member name="P:Steamworks.SteamClient.SteamId"> + <summary> + Gets the Steam ID of the account currently logged into the Steam client. This is + commonly called the 'current user', or 'local user'. + A Steam ID is a unique identifier for a Steam accounts, Steam groups, Lobbies and Chat + rooms, and used to differentiate users in all parts of the Steamworks API. + </summary> + </member> + <member name="P:Steamworks.SteamClient.Name"> + <summary> + returns the local players name - guaranteed to not be NULL. + this is the same name as on the users community profile page + </summary> + </member> + <member name="P:Steamworks.SteamClient.State"> + <summary> + gets the status of the current user + </summary> + </member> + <member name="P:Steamworks.SteamClient.AppId"> + <summary> + returns the appID of the current process + </summary> + </member> + <member name="M:Steamworks.SteamClient.RestartAppIfNecessary(System.UInt32)"> + <summary> + Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't + this returns true then it starts the Steam client if required and launches your game again through it, + and you should quit your process as soon as possible. This effectively runs steam://run/AppId so it + may not relaunch the exact executable that called it, as it will always relaunch from the version + installed in your Steam library folder/ + Note that during development, when not launching via Steam, this might always return true. + </summary> + </member> + <member name="M:Steamworks.SteamClient.ValidCheck"> + <summary> + Called in interfaces that rely on this being initialized + </summary> + </member> + <member name="T:Steamworks.SteamFriends"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnChatMessage"> + <summary> + Called when chat message has been received from a friend. You'll need to turn on + ListenForFriendsMessages to recieve this. (friend, msgtype, message) + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnPersonaStateChange"> + <summary> + called when a friends' status changes + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameRichPresenceJoinRequested"> + <summary> + Called when the user tries to join a game from their friends list + rich presence will have been set with the "connect" key which is set here + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameOverlayActivated"> + <summary> + Posted when game overlay activates or deactivates + the game can use this to be pause or resume single player games + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameServerChangeRequested"> + <summary> + Called when the user tries to join a different game server from their friends list + game client should attempt to connect to specified server when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameLobbyJoinRequested"> + <summary> + Called when the user tries to join a lobby from their friends list + game client should attempt to connect to specified lobby when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnFriendRichPresenceUpdate"> + <summary> + Callback indicating updated data about friends rich presence information + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenOverlay(System.String)"> + <summary> + The dialog to open. Valid options are: + "friends", + "community", + "players", + "settings", + "officialgamegroup", + "stats", + "achievements". + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenUserOverlay(Steamworks.SteamId,System.String)"> + <summary> + "steamid" - Opens the overlay web browser to the specified user or groups profile. + "chat" - Opens a chat window to the specified user, or joins the group chat. + "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API. + "stats" - Opens the overlay web browser to the specified user's stats. + "achievements" - Opens the overlay web browser to the specified user's achievements. + "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend. + "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend. + "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite. + "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenStoreOverlay(Steamworks.AppId)"> + <summary> + Activates the Steam Overlay to the Steam store page for the provided app. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenWebOverlay(System.String,System.Boolean)"> + <summary> + Activates Steam Overlay web browser directly to the specified URL. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenGameInviteOverlay(Steamworks.SteamId)"> + <summary> + Activates the Steam Overlay to open the invite dialog. Invitations sent from this dialog will be for the provided lobby. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetPlayedWith(Steamworks.SteamId)"> + <summary> + Mark a target user as 'played with'. + NOTE: The current user must be in game with the other player for the association to work. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.RequestUserInformation(Steamworks.SteamId,System.Boolean)"> + <summary> + Requests the persona name and optionally the avatar of a specified user. + NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them. + returns true if we're fetching the data, false if we already have it + </summary> + </member> + <member name="M:Steamworks.SteamFriends.GetRichPresence(System.String)"> + <summary> + Find a rich presence value by key for current user. Will be null if not found. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetRichPresence(System.String,System.String)"> + <summary> + Sets a rich presence value by key for current user. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.ClearRichPresence"> + <summary> + Clears all of the current user's rich presence data. + </summary> + </member> + <member name="P:Steamworks.SteamFriends.ListenForFriendsMessages"> + <summary> + Listens for Steam friends chat messages. + You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. + After enabling this you will receive callbacks when ever the user receives a chat message. + </summary> + </member> + <member name="M:Steamworks.SteamInput.RunFrame"> + <summary> + You shouldn't really need to call this because it get called by RunCallbacks on SteamClient + but Valve think it might be a nice idea if you call it right before you get input info - + just to make sure the info you're getting is 100% up to date. + </summary> + </member> + <member name="P:Steamworks.SteamInput.Controllers"> + <summary> + Return a list of connected controllers. + </summary> + </member> + <member name="M:Steamworks.SteamInput.GetDigitalActionGlyph(Steamworks.Controller,System.String)"> + <summary> + Return an absolute path to the PNG image glyph for the provided digital action name. The current + action set in use for the controller will be used for the lookup. You should cache the result and + maintain your own list of loaded PNG assets. + </summary> + <param name="controller"></param> + <param name="action"></param> + <returns></returns> + </member> + <member name="T:Steamworks.SteamInventory"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamInventory.LoadItemDefinitions"> + <summary> + Call this if you're going to want to access definition information. You should be able to get + away with calling this once at the start if your game, assuming your items don't change all the time. + This will trigger OnDefinitionsUpdated at which point Definitions should be set. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.WaitForDefinitions(System.Single)"> + <summary> + Will call LoadItemDefinitions and wait until Definitions is not null + </summary> + </member> + <member name="M:Steamworks.SteamInventory.FindDefinition(Steamworks.Data.InventoryDefId)"> + <summary> + Try to find the definition that matches this definition ID. + Uses a dictionary so should be about as fast as possible. + </summary> + </member> + <member name="P:Steamworks.SteamInventory.Items"> + <summary> + We will try to keep this list of your items automatically up to date. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItems"> + <summary> + Update the list of Items[] + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItemsAsync"> + <summary> + Get all items and return the InventoryResult + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GenerateItemAsync(Steamworks.InventoryDef,System.Int32)"> + <summary> + This is used to grant a specific item to the user. This should + only be used for development prototyping, from a trusted server, + or if you don't care about hacked clients granting arbitrary items. + This call can be disabled by a setting on Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem.Amount[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.DeserializeAsync(System.Byte[],System.Int32)"> + <summary> + Deserializes a result set and verifies the signature bytes. + This call has a potential soft-failure mode where the Result is expired, it will + still succeed in this mode.The "expired" + result could indicate that the data may be out of date - not just due to timed + expiration( one hour ), but also because one of the items in the result set may + have been traded or consumed since the result set was generated.You could compare + the timestamp from GetResultTimestamp to ISteamUtils::GetServerRealTime to determine + how old the data is. You could simply ignore the "expired" result code and + continue as normal, or you could request the player with expired data to send + an updated result set. + You should call CheckResultSteamID on the result handle when it completes to verify + that a remote player is not pretending to have a different user's inventory. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GrantPromoItemsAsync"> + <summary> + Grant all promotional items the user is eligible for + </summary> + </member> + <member name="M:Steamworks.SteamInventory.TriggerItemDropAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger an item drop for this user. This is for timed drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.AddPromoItemAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger a promo item drop. You can call this at startup, it won't + give users multiple promo drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.StartPurchaseAsync(Steamworks.InventoryDef[])"> + <summary> + Start buying a cart load of items. This will return a positive result is the purchase has + begun. You should listen out for SteamUser.OnMicroTxnAuthorizationResponse for a success. + </summary> + </member> + <member name="T:Steamworks.SteamMatchmaking"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="P:Steamworks.SteamMatchmaking.MaxLobbyKeyLength"> + <summary> + Maximum number of characters a lobby metadata key can be + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyInvite"> + <summary> + Someone invited you to a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyEntered"> + <summary> + You joined a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyCreated"> + <summary> + You created a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyGameCreated"> + <summary> + A game server has been associated with the lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyDataChanged"> + <summary> + The lobby metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDataChanged"> + <summary> + The lobby member metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberJoined"> + <summary> + The lobby member joined + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberLeave"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDisconnected"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberKicked"> + <summary> + The lobby member was kicked. The 3rd param is the user that kicked them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberBanned"> + <summary> + The lobby member was banned. The 3rd param is the user that banned them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnChatMessage"> + <summary> + A chat message was recieved from a member of a lobby + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.CreateLobbyAsync(System.Int32)"> + <summary> + Creates a new invisible lobby. Call lobby.SetPublic to take it online. + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.JoinLobbyAsync(Steamworks.SteamId)"> + <summmary> + Attempts to directly join the specified lobby + </summmary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetFavoriteServers"> + <summary> + Get a list of servers that are on your favorites list + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetHistoryServers"> + <summary> + Get a list of servers that you have added to your play history + </summary> + </member> + <member name="T:Steamworks.SteamMatchmakingServers"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="T:Steamworks.SteamMusic"> + <summary> + Functions to control music playback in the steam client. + This gives games the opportunity to do things like pause the music or lower the volume, + when an important cut scene is shown, and start playing afterwards. + Nothing uses Steam Music though so this can probably get fucked + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnPlaybackChanged"> + <summary> + Playback status changed + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnVolumeChanged"> + <summary> + Volume changed, parameter is new volume + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsEnabled"> + <summary> + Checks if Steam Music is enabled + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsPlaying"> + <summary> + true if a song is currently playing, paused, or queued up to play; otherwise false. + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Status"> + <summary> + Gets the current status of the Steam Music player + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayPrevious"> + <summary> + Have the Steam Music player play the previous song. + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayNext"> + <summary> + Have the Steam Music player skip to the next song + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Volume"> + <summary> + Gets/Sets the current volume of the Steam Music player + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PSessionRequest"> + <summary> + This SteamId wants to send you a message. You should respond by calling AcceptP2PSessionWithUser + if you want to recieve their messages + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PConnectionFailed"> + <summary> + Called when packets can't get through to the specified user. + All queued packets unsent at this point will be dropped, further attempts + to send will retry making the connection (but will be dropped if we fail again). + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AcceptP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called in response to a OnP2PSessionRequest + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AllowP2PPacketRelay(System.Boolean)"> + <summary> + Allow or disallow P2P connects to fall back on Steam server relay if direct + connection or NAT traversal can't be established. Applies to connections + created after setting or old connections that need to reconnect. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.CloseP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called when you're done communicating with a user, as this will + free up all of the resources allocated for the connection under-the-hood. + If the remote user tries to send data to you again, a new OnP2PSessionRequest + callback will be posted + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.IsP2PPacketAvailable(System.Int32)"> + <summary> + Checks if a P2P packet is available to read, and gets the size of the message if there is one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte[],System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte*,System.UInt32,System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte[],System.Int32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte*,System.UInt32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket``1(Steamworks.Data.NetAddress)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6) + + To use this derive a class from SocketManager and override as much as you want. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket(Steamworks.Data.NetAddress,Steamworks.ISocketManager)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6). + + To use this you should pass a class that inherits ISocketManager. You can use + SocketManager to get connections and send messages, but the ISocketManager class + will received all the appropriate callbacks. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal``1(Steamworks.Data.NetAddress)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal(Steamworks.Data.NetAddress,Steamworks.IConnectionManager)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateRelaySocket``1(System.Int32)"> + <summary> + Creates a server that will be relayed via Valve's network (hiding the IP and improving ping) + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectRelay``1(Steamworks.SteamId,System.Int32)"> + <summary> + Connect to a relay server + </summary> + </member> + <member name="T:Steamworks.SteamNetworkingUtils"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamNetworkingUtils.OnDebugOutput"> + <summary> + A function to receive debug network information on. This will do nothing + unless you set DebugLevel to something other than None. + + You should set this to an appropriate level instead of setting it to the highest + and then filtering it by hand because a lot of energy is used by creating the strings + and your frame rate will tank and you won't know why. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Status"> + <summary> + The latest available status gathered from the SteamRelayNetworkStatus callback + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.InitRelayNetworkAccess"> + <summary> + If you know that you are going to be using the relay network (for example, + because you anticipate making P2P connections), call this to initialize the + relay network. If you do not call this, the initialization will + be delayed until the first time you use a feature that requires access + to the relay network, which will delay that first access. + + You can also call this to force a retry if the previous attempt has failed. + Performing any action that requires access to the relay network will also + trigger a retry, and so calling this function is never strictly necessary, + but it can be useful to call it a program launch time, if access to the + relay network is anticipated. + + Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + callbacks to know when initialization has completed. + Typically initialization completes in a few seconds. + + Note: dedicated servers hosted in known data centers do *not* need + to call this, since they do not make routing decisions. However, if + the dedicated server will be using P2P functionality, it will act as + a "client" and this should be called. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.LocalPingLocation"> + <summary> + Return location info for the current host. + + It takes a few seconds to initialize access to the relay network. If + you call this very soon after startup the data may not be available yet. + + This always return the most up-to-date information we have available + right now, even if we are in the middle of re-calculating ping times. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + <summary> + Same as PingLocation.EstimatePingTo, but assumes that one location is the local host. + This is a bit faster, especially if you need to calculate a bunch of + these in a loop to find the fastest one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.WaitForPingDataAsync(System.Single)"> + <summary> + If you need ping information straight away, wait on this. It will return + immediately if you already have up to date ping data + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.ConnectionTimeout"> + <summary> + Timeout value (in ms) to use when first connecting + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Timeout"> + <summary> + Timeout value (in ms) to use after connection is established + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.SendBufferSize"> + <summary> + Upper limit of buffered pending bytes to be sent. + If this is reached SendMessage will return LimitExceeded. + Default is 524288 bytes (512k) + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.DebugLevel"> + <summary> + Get Debug Information via OnDebugOutput event + + Except when debugging, you should only use NetDebugOutput.Msg + or NetDebugOutput.Warning. For best performance, do NOT + request a high detail level and then filter out messages in the callback. + + This incurs all of the expense of formatting the messages, which are then discarded. + Setting a high priority value (low numeric value) here allows the library to avoid + doing this work. + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugLevel"> + <summary> + So we can remember and provide a Get for DebugLEvel + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugFunc"> + <summary> + We need to keep the delegate around until it's not used anymore + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OnDebugMessage(Steamworks.NetDebugOutput,System.IntPtr)"> + <summary> + This can be called from other threads - so we're going to queue these up and process them in a safe place. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OutputDebugMessages"> + <summary> + Called regularly from the Dispatch loop so we can provide a timely + stream of messages. + </summary> + </member> + <member name="T:Steamworks.SteamParental"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamParental.OnSettingsChanged"> + <summary> + Parental Settings Changed + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockEnabled"> + <summary> + + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockLocked"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsAppBlocked(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsAppInBlockList(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsFeatureBlocked(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsFeatureInBlockList(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="T:Steamworks.SteamParties"> + <summary> + This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. + Tell Steam the number of player spots that are available for your party, and a join-game string, and it + will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. + Adjust the number of open slots if other players join through alternate matchmaking methods. + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnBeaconLocationsUpdated"> + <summary> + The list of possible Party beacon locations has changed + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnActiveBeaconsUpdated"> + <summary> + The list of active beacons may have changed + </summary> + </member> + <member name="T:Steamworks.SteamRemotePlay"> + <summary> + Functions that provide information about Steam Remote Play sessions, streaming your game content to another computer or to a Steam Link app or hardware. + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionConnected"> + <summary> + Called when a session is connected + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionDisconnected"> + <summary> + Called when a session becomes disconnected + </summary> + </member> + <member name="P:Steamworks.SteamRemotePlay.SessionCount"> + <summary> + Get the number of currently connected Steam Remote Play sessions + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.GetSession(System.Int32)"> + <summary> + Get the currently connected Steam Remote Play session ID at the specified index. + IsValid will return false if it's out of bounds + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.SendInvite(Steamworks.SteamId)"> + <summary> + Invite a friend to Remote Play Together + This returns false if the invite can't be sent + </summary> + </member> + <member name="T:Steamworks.SteamRemoteStorage"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileWrite(System.String,System.Byte[])"> + <summary> + Creates a new file, writes the bytes to the file, and then closes the file. + If the target file already exists, it is overwritten + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileRead(System.String)"> + <summary> + Opens a binary file, reads the contents of the file into a byte array, and then closes the file. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileExists(System.String)"> + <summary> + Checks whether the specified file exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FilePersisted(System.String)"> + <summary> + Checks if a specific file is persisted in the steam cloud. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileTime(System.String)"> + <summary> + Gets the specified file's last modified date/time. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileSize(System.String)"> + <summary> + Gets the specified files size in bytes. 0 if not exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileForget(System.String)"> + <summary> + Deletes the file from remote storage, but leaves it on the local disk and remains accessible from the API. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileDelete(System.String)"> + <summary> + Deletes a file from the local disk, and propagates that delete to the cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaBytes"> + <summary> + Number of bytes total + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaUsedBytes"> + <summary> + Number of bytes used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaRemainingBytes"> + <summary> + Number of bytes remaining until your quota is used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabled"> + <summary> + returns true if IsCloudEnabledForAccount AND IsCloudEnabledForApp + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForAccount"> + <summary> + Checks if the account wide Steam Cloud setting is enabled for this user + or if they disabled it in the Settings->Cloud dialog. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForApp"> + <summary> + Checks if the per game Steam Cloud setting is enabled for this user + or if they disabled it in the Game Properties->Update dialog. + + This must only ever be set as the direct result of the user explicitly + requesting that it's enabled or not. This is typically accomplished with + a checkbox within your in-game options + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.FileCount"> + <summary> + Gets the total number of local files synchronized by Steam Cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.Files"> + <summary> + Get a list of filenames synchronized by Steam Cloud + </summary> + </member> + <member name="T:Steamworks.SteamScreenshots"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotRequested"> + <summary> + A screenshot has been requested by the user from the Steam screenshot hotkey. + This will only be called if Hooked is true, in which case Steam + will not take the screenshot itself. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotReady"> + <summary> + A screenshot successfully written or otherwise added to the library and can now be tagged. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotFailed"> + <summary> + A screenshot attempt failed + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.WriteScreenshot(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.AddScreenshot(System.String,System.String,System.Int32,System.Int32)"> + <summary> + Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + JPEG, TGA, and PNG formats are supported. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.TriggerScreenshot"> + <summary> + Causes the Steam overlay to take a screenshot. + If screenshots are being hooked by the game then a + ScreenshotRequested callback is sent back to the game instead. + </summary> + </member> + <member name="P:Steamworks.SteamScreenshots.Hooked"> + <summary> + Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or if the game handles them. + Hooking is disabled by default, and only ever enabled if you do so with this function. + If the hooking is enabled, then the ScreenshotRequested_t callback will be sent if the user presses the hotkey or + when TriggerScreenshot is called, and then the game is expected to call WriteScreenshot or AddScreenshotToLibrary in response. + </summary> + </member> + <member name="T:Steamworks.SteamServer"> + <summary> + Provides the core of the Steam Game Servers API + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnValidateAuthTicketResponse"> + <summary> + User has been authed or rejected + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the server now is logged on and has a working connection to the Steam master server. + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServerConnectFailure"> + <summary> + This will occur periodically if the Steam client is not connected, and has failed when retrying to establish a connection (result, stilltrying) + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersDisconnected"> + <summary> + Disconnected from Steam + </summary> + </member> + <member name="M:Steamworks.SteamServer.Init(Steamworks.AppId,Steamworks.SteamServerInit,System.Boolean)"> + <summary> + Initialize the steam server. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="M:Steamworks.SteamServer.RunCallbacks"> + <summary> + Run the callbacks. This is also called in Async callbacks. + </summary> + </member> + <member name="P:Steamworks.SteamServer.DedicatedServer"> + <summary> + Sets whether this should be marked as a dedicated server. + If not, it is assumed to be a listen server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MaxPlayers"> + <summary> + Gets or sets the current MaxPlayers. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.BotCount"> + <summary> + Gets or sets the current BotCount. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MapName"> + <summary> + Gets or sets the current Map Name. + </summary> + </member> + <member name="P:Steamworks.SteamServer.ModDir"> + <summary> + Gets or sets the current ModDir + </summary> + </member> + <member name="P:Steamworks.SteamServer.Product"> + <summary> + Gets the current product + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameDescription"> + <summary> + Gets or sets the current Product + </summary> + </member> + <member name="P:Steamworks.SteamServer.ServerName"> + <summary> + Gets or sets the current ServerName + </summary> + </member> + <member name="P:Steamworks.SteamServer.Passworded"> + <summary> + Set whether the server should report itself as passworded + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameTags"> + <summary> + Gets or sets the current GameTags. This is a comma seperated list of tags for this server. + When querying the server list you can filter by these tags. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOnAnonymous"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOff"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="P:Steamworks.SteamServer.LoggedOn"> + <summary> + Returns true if the server is connected and registered with the Steam master server + You should have called LogOnAnonymous etc on startup. + </summary> + </member> + <member name="P:Steamworks.SteamServer.PublicIp"> + <summary> + To the best of its ability this tries to get the server's + current public ip address. Be aware that this is likely to return + null for the first few seconds after initialization. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeats"> + <summary> + Enable or disable heartbeats, which are sent regularly to the master server. + Enabled by default. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeatRate"> + <summary> + Set heartbeat interval, if automatic heartbeats are enabled. + You can leave this at the default. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ForceHeartbeat"> + <summary> + Force send a heartbeat to the master server instead of waiting + for the next automatic update (if you've left them enabled) + </summary> + </member> + <member name="M:Steamworks.SteamServer.UpdatePlayer(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Update this connected player's information. You should really call this + any time a player's name or score changes. This keeps the information shown + to server queries up to date. + </summary> + </member> + <member name="M:Steamworks.SteamServer.SetKey(System.String,System.String)"> + <summary> + Sets a Key Value. These can be anything you like, and are accessible + when querying servers from the server list. + + Information describing gamemodes are common here. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ClearKeys"> + <summary> + Remove all key values + </summary> + </member> + <member name="M:Steamworks.SteamServer.BeginAuthSession(System.Byte[],Steamworks.SteamId)"> + <summary> + Start authorizing a ticket. This user isn't authorized yet. Wait for a call to OnAuthChange. + </summary> + </member> + <member name="M:Steamworks.SteamServer.EndSession(Steamworks.SteamId)"> + <summary> + Forget this guy. They're no longer in the game. + </summary> + </member> + <member name="M:Steamworks.SteamServer.GetOutgoingPacket(Steamworks.Data.OutgoingPacket@)"> + <summary> + If true, Steam wants to send a packet. You should respond by sending + this packet in an unconnected way to the returned Address and Port. + </summary> + <param name="packet">Packet to send. The Data passed is pooled - so use it immediately.</param> + <returns>True if we want to send a packet</returns> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.Byte[],System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.IntPtr,System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.UserHasLicenseForApp(Steamworks.SteamId,Steamworks.AppId)"> + <summary> + Does the user own this app (which could be DLC) + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.RequestUserStatsAsync(Steamworks.SteamId)"> + <summary> + Downloads stats for the user + If the user has no stats will return fail + these stats will only be auto-updated for clients playing on the server + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Unlocks the specified achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.ClearAchievement(Steamworks.SteamId,System.String)"> + <summary> + Resets the unlock status of an achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Return true if available, exists and unlocked + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.StoreUserStats(Steamworks.SteamId)"> + <summary> + Once you've set a stat change on a user you need to commit your changes. + You can do that using this function. The callback will let you know if + your action succeeded, but most of the time you can fire and forget. + </summary> + </member> + <member name="T:Steamworks.SteamUGC"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUGC.OnDownloadItemResult"> + <summary> + Posted after Download call + </summary> + </member> + <member name="M:Steamworks.SteamUGC.Download(Steamworks.Data.PublishedFileId,System.Boolean)"> + <summary> + Start downloading this item. You'll get notified of completion via OnDownloadItemResult. + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="highPriority">If true this should go straight to the top of the download list</param> + <returns>true if nothing went wrong and the download is started</returns> + </member> + <member name="M:Steamworks.SteamUGC.DownloadAsync(Steamworks.Data.PublishedFileId,System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Will attempt to download this item asyncronously - allowing you to instantly react to its installation + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="progress">An optional callback</param> + <param name="ct">Allows you to send a message to cancel the download anywhere during the process</param> + <param name="milisecondsUpdateDelay">How often to call the progress function</param> + <returns>true if downloaded and installed correctly</returns> + </member> + <member name="M:Steamworks.SteamUGC.QueryFileAsync(Steamworks.Data.PublishedFileId)"> + <summary> + Utility function to fetch a single item. Internally this uses Ugc.FileQuery - + which you can use to query multiple items if you need to. + </summary> + </member> + <member name="T:Steamworks.SteamUser"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the Steam client now has a working connection to the Steam servers. + Usually this will have occurred before the game has launched, and should only be seen if the + user has dropped connection due to a networking issue or a Steam server update. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServerConnectFailure"> + <summary> + Called when a connection attempt has failed. + This will occur periodically if the Steam client is not connected, + and has failed when retrying to establish a connection. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersDisconnected"> + <summary> + Called if the client has lost connection to the Steam servers. + Real-time services will be disabled until a matching OnSteamServersConnected has been posted. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnClientGameServerDeny"> + <summary> + Sent by the Steam server to the client telling it to disconnect from the specified game server, + which it may be in the process of or already connected to. + The game client should immediately disconnect upon receiving this message. + This can usually occur if the user doesn't have rights to play on the game server. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnLicensesUpdated"> + <summary> + Called whenever the users licenses (owned packages) changes. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnValidateAuthTicketResponse"> + <summary> + Called when an auth ticket has been validated. + The first parameter is the steamid of this user + The second is the Steam ID that owns the game, this will be different from the first + if the game is being borrowed via Steam Family Sharing + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGetAuthSessionTicketResponse"> + <summary> + Used internally for GetAuthSessionTicketAsync + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnMicroTxnAuthorizationResponse"> + <summary> + Called when a user has responded to a microtransaction authorization request. + ( appid, orderid, user authorized ) + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGameWebCallback"> + <summary> + Sent to your game in response to a steam://gamewebcallback/ command from a user clicking a link in the Steam overlay browser. + You can use this to add support for external site signups where you want to pop back into the browser after some web page + signup sequence, and optionally get back some detail about that. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnDurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, + half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.SteamUser.VoiceRecord"> + <summary> + Starts/Stops voice recording. + Once started, use GetAvailableVoice and GetVoice to get the data, and then call StopVoiceRecording + when the user has released their push-to-talk hotkey or the game session has completed. + </summary> + </member> + <member name="P:Steamworks.SteamUser.HasVoiceData"> + <summary> + Returns true if we have voice data waiting to be read + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceData(System.IO.Stream)"> + <summary> + Reads the voice data and returns the number of bytes written. + The compressed data can be transmitted by your application and decoded back into raw audio data using + DecompressVoice on the other side. The compressed data provided is in an arbitrary format and is not meant to be played directly. + This should be called once per frame, and at worst no more than four times a second to keep the microphone input delay as low as + possible. Calling this any less may result in gaps in the returned stream. + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceDataBytes"> + <summary> + Reads the voice data and returns the bytes. You should obviously ideally be using + ReadVoiceData because it won't be creating a new byte array every call. But this + makes it easier to get it working, so let the babies have their bottle. + </summary> + </member> + <member name="M:Steamworks.SteamUser.DecompressVoice(System.IO.Stream,System.Int32,System.IO.Stream)"> + <summary> + Decodes the compressed voice data returned by GetVoice. + The output data is raw single-channel 16-bit PCM audio.The decoder supports any sample rate from 11025 to 48000. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicket"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicketAsync(System.Double)"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + This waits for a positive response from the backend before returning the ticket. This means + the ticket is definitely ready to go as soon as it returns. Will return null if the callback + times out or returns negatively. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsBehindNAT"> + <summary> + Checks if the current users looks like they are behind a NAT device. + This is only valid if the user is connected to the Steam servers and may not catch all forms of NAT. + </summary> + </member> + <member name="P:Steamworks.SteamUser.SteamLevel"> + <summary> + Gets the Steam level of the user, as shown on their Steam community profile. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetStoreAuthUrlAsync(System.String)"> + <summary> + Requests a URL which authenticates an in-game browser for store check-out, and then redirects to the specified URL. + As long as the in-game browser accepts and handles session cookies, Steam microtransaction checkout pages will automatically recognize the user instead of presenting a login page. + NOTE: The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. + NOTE: The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneVerified"> + <summary> + Checks whether the current user has verified their phone number. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsTwoFactorEnabled"> + <summary> + Checks whether the current user has Steam Guard two factor authentication enabled on their account. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneIdentifying"> + <summary> + Checks whether the user's phone number is used to uniquely identify them. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneRequiringVerification"> + <summary> + Checks whether the current user's phone number is awaiting (re)verification. + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync(System.Byte[])"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + If you get a null result from this it's probably because you're calling it too often. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetDurationControl"> + <summary> + Get anti indulgence / duration control + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementIconFetched"> + <summary> + called when the achivement icon is loaded + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsReceived"> + <summary> + called when the latests stats and achievements have been received + from the server + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsStored"> + <summary> + result of a request to store the user stats for a game + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementProgress"> + <summary> + result of a request to store the achievements for a game, or an + "indicate progress" call. If both m_nCurProgress and m_nMaxProgress + are zero, that means the achievement has been fully unlocked + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsUnloaded"> + <summary> + Callback indicating that a user's stats have been unloaded + </summary> + </member> + <member name="P:Steamworks.SteamUserStats.Achievements"> + <summary> + Get the available achievements + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.IndicateAchievementProgress(System.String,System.Int32,System.Int32)"> + <summary> + Show the user a pop-up notification with the current progress toward an achievement. + Will return false if RequestCurrentStats has not completed and successfully returned + its callback, if the achievement doesn't exist/has unpublished changes in the app's + Steamworks Admin page, or if the achievement is unlocked. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.PlayerCountAsync"> + <summary> + Tries to get the number of players currently playing this game. + Or -1 if failed. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.StoreStats"> + <summary> + Send the changed stats and achievements data to the server for permanent storage. + If this fails then nothing is sent to the server. It's advisable to keep trying until the call is successful. + This call can be rate limited. Call frequency should be on the order of minutes, rather than seconds.You should only be calling this during major state changes such as the end of a round, the map changing, or the user leaving a server. This call is required to display the achievement unlock notification dialog though, so if you have called SetAchievement then it's advisable to call this soon after that. + If you have stats or achievements that you have saved locally but haven't uploaded with this function when your application process ends then this function will automatically be called. + You can find additional debug information written to the %steam_install%\logs\stats_log.txt file. + This function returns true upon success if : + RequestCurrentStats has completed and successfully returned its callback AND + the current game has stats associated with it in the Steamworks Partner backend, and those stats are published. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestCurrentStats"> + <summary> + Asynchronously request the user's current stats and achievements from the server. + You must always call this first to get the initial status of stats and achievements. + Only after the resulting callback comes back can you start calling the rest of the stats + and achievement functions for the current user. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestGlobalStatsAsync(System.Int32)"> + <summary> + Asynchronously fetches global stats data, which is available for stats marked as + "aggregated" in the App Admin panel of the Steamworks website. + You must have called RequestCurrentStats and it needs to return successfully via + its callback prior to calling this. + </summary> + <param name="days">How many days of day-by-day history to retrieve in addition to the overall totals. The limit is 60.</param> + <returns>OK indicates success, InvalidState means you need to call RequestCurrentStats first, Fail means the remote call failed</returns> + </member> + <member name="M:Steamworks.SteamUserStats.FindOrCreateLeaderboardAsync(System.String,Steamworks.Data.LeaderboardSort,Steamworks.Data.LeaderboardDisplay)"> + <summary> + Gets a leaderboard by name, it will create it if it's not yet created. + Leaderboards created with this function will not automatically show up in the Steam Community. + You must manually set the Community Name field in the App Admin panel of the Steamworks website. + As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on + the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of + dynamically created leaderboards. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Int32)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Single)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Int32)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Single)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatInt(System.String)"> + <summary> + Get a Int stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatFloat(System.String)"> + <summary> + Get a float stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.ResetAll(System.Boolean)"> + <summary> + Practically wipes the slate clean for this user. If includeAchievements is true, will wipe + any achievements too. + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamUtils"> + <summary> + Interface which provides access to a range of miscellaneous utility functions + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnIpCountryChanged"> + <summary> + The country of the user changed + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnLowBatteryPower"> + <summary> + Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute + The parameter is the number of minutes left + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnSteamShutdown"> + <summary> + Called when Steam wants to shutdown + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnGamepadTextInputDismissed"> + <summary> + Big Picture gamepad text input has been closed. Parameter is true if text was submitted, false if cancelled etc. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceAppActive"> + <summary> + Returns the number of seconds since the application was active + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceComputerActive"> + <summary> + Returns the number of seconds since the user last moved the mouse etc + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamServerTime"> + <summary> + Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IpCountry"> + <summary> + returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + e.g "US" or "UK". + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImageSize(System.Int32,System.UInt32@,System.UInt32@)"> + <summary> + returns true if the image exists, and the buffer was successfully filled out + results are returned in RGBA format + the destination buffer size should be 4 * height * width * sizeof(char) + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImage(System.Int32)"> + <summary> + returns the image in RGBA format + </summary> + </member> + <member name="P:Steamworks.SteamUtils.UsingBatteryPower"> + <summary> + Returns true if we're using a battery (ie, a laptop not plugged in) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.CurrentBatteryPower"> + <summary> + Returns battery power [0-1] + </summary> + </member> + <member name="P:Steamworks.SteamUtils.OverlayNotificationPosition"> + <summary> + Sets the position where the overlay instance for the currently calling game should show notifications. + This position is per-game and if this function is called from outside of a game context it will do nothing. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsOverlayEnabled"> + <summary> + Returns true if the overlay is running and the user can access it. The overlay process could take a few seconds to + start and hook the game process, so this function will initially return false while the overlay is loading. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.DoesOverlayNeedPresent"> + <summary> + Normally this call is unneeded if your game has a constantly running frame loop that calls the + D3D Present API, or OGL SwapBuffers API every frame. + + However, if you have a game that only refreshes the screen on an event driven basis then that can break + the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + need to Present() to the screen any time an even needing a notification happens or when the overlay is + brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.CheckFileSignatureAsync(System.String)"> + <summary> + Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + of the partner site, for example to refuse to load modified executable files. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.ShowGamepadTextInput(Steamworks.GamepadTextInputMode,Steamworks.GamepadTextInputLineMode,System.String,System.Int32,System.String)"> + <summary> + Activates the Big Picture text input dialog which only supports gamepad input + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetEnteredGamepadText"> + <summary> + Returns previously entered text + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamUILanguage"> + <summary> + returns the language the steam client is running in, you probably want + Apps.CurrentGameLanguage instead, this is for very special usage cases + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamRunningInVR"> + <summary> + returns true if Steam itself is running in VR mode + </summary> + </member> + <member name="M:Steamworks.SteamUtils.SetOverlayNotificationInset(System.Int32,System.Int32)"> + <summary> + Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamInBigPictureMode"> + <summary> + returns true if Steam and the Steam Overlay are running in Big Picture mode + Games much be launched through the Steam client to enable the Big Picture overlay. During development, + a game can be added as a non-steam game to the developers library to test this feature + </summary> + </member> + <member name="M:Steamworks.SteamUtils.StartVRDashboard"> + <summary> + ask SteamUI to create and render its OpenVR dashboard + </summary> + </member> + <member name="P:Steamworks.SteamUtils.VrHeadsetStreaming"> + <summary> + Set whether the HMD content will be streamed via Steam In-Home Streaming + If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + (this is useful for games that have asymmetric multiplayer gameplay) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamChinaLauncher"> + <summary> + Returns whether this steam client is a Steam China specific client, vs the global client + </summary> + </member> + <member name="T:Steamworks.SteamVideo"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="P:Steamworks.SteamVideo.IsBroadcasting"> + <summary> + Return true if currently using Steam's live broadcasting + </summary> + </member> + <member name="P:Steamworks.SteamVideo.NumViewers"> + <summary> + If we're broadcasting, will return the number of live viewers + </summary> + </member> + <member name="P:Steamworks.Controller.ActionSet"> + <summary> + Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + our state loops, instead of trying to place it in all of your state transitions. + </summary> + </member> + <member name="M:Steamworks.Controller.GetDigitalState(System.String)"> + <summary> + Returns the current state of the supplied digital game action + </summary> + </member> + <member name="M:Steamworks.Controller.GetAnalogState(System.String)"> + <summary> + Returns the current state of these supplied analog game action + </summary> + </member> + <member name="P:Steamworks.Friend.IsMe"> + <summary> + Returns true if this is the local user + </summary> + </member> + <member name="P:Steamworks.Friend.IsFriend"> + <summary> + Return true if this is a friend + </summary> + </member> + <member name="P:Steamworks.Friend.IsBlocked"> + <summary> + Returns true if you have this user blocked + </summary> + </member> + <member name="P:Steamworks.Friend.IsPlayingThisGame"> + <summary> + Return true if this user is playing the game we're running + </summary> + </member> + <member name="P:Steamworks.Friend.IsOnline"> + <summary> + Returns true if this friend is online + </summary> + </member> + <member name="M:Steamworks.Friend.RequestInfoAsync"> + <summary> + Sometimes we don't know the user's name. This will wait until we have + downloaded the information on this user. + </summary> + </member> + <member name="P:Steamworks.Friend.IsAway"> + <summary> + Returns true if this friend is marked as away + </summary> + </member> + <member name="P:Steamworks.Friend.IsBusy"> + <summary> + Returns true if this friend is marked as busy + </summary> + </member> + <member name="P:Steamworks.Friend.IsSnoozing"> + <summary> + Returns true if this friend is marked as snoozing + </summary> + </member> + <member name="M:Steamworks.Friend.InviteToGame(System.String)"> + <summary> + Invite this friend to the game that we are playing + </summary> + </member> + <member name="M:Steamworks.Friend.SendMessage(System.String)"> + <summary> + Sends a message to a Steam friend. Returns true if success + </summary> + </member> + <member name="M:Steamworks.Friend.RequestUserStatsAsync"> + <summary> + Tries to get download the latest user stats + </summary> + <returns>True if successful, False if failure</returns> + </member> + <member name="M:Steamworks.Friend.GetStatFloat(System.String,System.Single)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetStatInt(System.String,System.Int32)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievement(System.String,System.Boolean)"> + <summary> + Gets a user achievement state. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievementUnlockTime(System.String)"> + <summary> + Gets a the time this achievement was unlocked. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <returns>The time unlocked. If it wasn't unlocked, or you haven't downloaded the stats yet - will return DateTime.MinValue</returns> + </member> + <member name="P:Steamworks.InventoryDef.Name"> + <summary> + Shortcut to call GetProperty( "name" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Description"> + <summary> + Shortcut to call GetProperty( "description" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrl"> + <summary> + Shortcut to call GetProperty( "icon_url" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrlLarge"> + <summary> + Shortcut to call GetProperty( "icon_url_large" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.PriceCategory"> + <summary> + Shortcut to call GetProperty( "price_category" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Type"> + <summary> + Shortcut to call GetProperty( "type" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IsGenerator"> + <summary> + Returns true if this is an item that generates an item, rather + than something that is actual an item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.ExchangeSchema"> + <summary> + Shortcut to call GetProperty( "exchange" ) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipes"> + <summary> + Get a list of exchanges that are available to make this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Marketable"> + <summary> + Shortcut to call GetBoolProperty( "marketable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Tradable"> + <summary> + Shortcut to call GetBoolProperty( "tradable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Created"> + <summary> + Gets the property timestamp + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Modified"> + <summary> + Gets the property modified + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty(System.String)"> + <summary> + Get a specific property by name + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetBoolProperty(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty``1(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Properties"> + <summary> + Gets a list of all properties on this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalPrice"> + <summary> + Returns the price of this item in the local currency (SteamInventory.Currency) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalBasePrice"> + <summary> + If the price has been discounted, LocalPrice will differ from LocalBasePrice + (assumed, this isn't documented) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipesContainingThis"> + <summary> + Return a list of recepies that contain this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Properties"> + <summary> + Only available if the result set was created with the getproperties + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsNoTrade"> + <summary> + This item is account-locked and cannot be traded or given away. + This is an item status flag which is permanently attached to specific item instances + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsRemoved"> + <summary> + The item has been destroyed, traded away, expired, or otherwise invalidated. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsConsumed"> + <summary> + The item quantity has been decreased by 1 via ConsumeItem API. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="M:Steamworks.InventoryItem.ConsumeAsync(System.Int32)"> + <summary> + Consumes items from a user's inventory. If the quantity of the given item goes to zero, it is permanently removed. + Once an item is removed it cannot be recovered.This is not for the faint of heart - if your game implements item removal at all, + a high-friction UI confirmation process is highly recommended.ConsumeItem can be restricted to certain item definitions or fully + blocked via the Steamworks website to minimize support/abuse issues such as the classic "my brother borrowed my laptop and deleted all of my rare items". + </summary> + </member> + <member name="M:Steamworks.InventoryItem.SplitStackAsync(System.Int32)"> + <summary> + Split stack into two items + </summary> + </member> + <member name="M:Steamworks.InventoryItem.AddAsync(Steamworks.InventoryItem,System.Int32)"> + <summary> + Add x units of the target item to this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Acquired"> + <summary> + Will try to return the date that this item was aquired. You need to have for the items + with their properties for this to work. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Origin"> + <summary> + Tries to get the origin property. Need properties for this to work. + Will return a string like "market" + </summary> + </member> + <member name="T:Steamworks.InventoryItem.Amount"> + <summary> + Small utility class to describe an item with a quantity + </summary> + </member> + <member name="T:Steamworks.InventoryRecipe"> + <summary> + A structured description of an item exchange + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.DefinitionId"> + <summary> + The definition ID of the ingredient. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Definition"> + <summary> + If we don't know about this item definition this might be null. + In which case, DefinitionId should still hold the correct id. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Count"> + <summary> + The amount of this item needed. Generally this will be 1. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Result"> + <summary> + The item that this will create. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredients"> + <summary> + The items, with quantity required to create this item. + </summary> + </member> + <member name="M:Steamworks.InventoryResult.BelongsTo(Steamworks.SteamId)"> + <summary> + Checks whether an inventory result handle belongs to the specified Steam ID. + This is important when using Deserialize, to verify that a remote player is not pretending to have a different user's inventory + </summary> + </member> + <member name="M:Steamworks.InventoryResult.Serialize"> + <summary> + Serialized result sets contain a short signature which can't be forged or replayed across different game sessions. + A result set can be serialized on the local client, transmitted to other players via your game networking, and + deserialized by the remote players.This is a secure way of preventing hackers from lying about posessing + rare/high-value items. Serializes a result set with signature bytes to an output buffer.The size of a serialized + result depends on the number items which are being serialized.When securely transmitting items to other players, + it is recommended to use GetItemsByID first to create a minimal result set. + Results have a built-in timestamp which will be considered "expired" after an hour has elapsed.See DeserializeResult + for expiration handling. + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.Owner"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.MetaData"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.JoinAsync"> + <summary> + Will attempt to join the party. If successful will return a connection string. + If failed, will return null + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.OnReservationCompleted(Steamworks.SteamId)"> + <summary> + When a user follows your beacon, Steam will reserve one of the open party slots for them, and send your game a ReservationNotification callback. + When that user joins your party, call OnReservationCompleted to notify Steam that the user has joined successfully + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.CancelReservation(Steamworks.SteamId)"> + <summary> + To cancel a reservation (due to timeout or user input), call this. + Steam will open a new reservation slot. + Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.Destroy"> + <summary> + Turn off the beacon + </summary> + </member> + <member name="T:Steamworks.SteamServerInit"> + <summary> + Used to set up the server. + The variables in here are all required to be set, and can't be changed once the server is created. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.VersionString"> + <summary> + The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. + If you go into the dedicated server tab on steamworks you'll be able to server the latest version. If this version number is + less than that latest version then your server won't show. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.ModDir"> + <summary> + This should be the same directory game where gets installed into. Just the folder name, not the whole path. I.e. "Rust", "Garrysmod". + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.GameDescription"> + <summary> + The game description. Setting this to the full name of your game is recommended. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.DedicatedServer"> + <summary> + Is a dedicated server + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithRandomSteamPort"> + <summary> + Set the Steam quert port + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithQueryShareGamePort"> + <summary> + If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE into usQueryPort, then it causes the game server API to use + "GameSocketShare" mode, which means that the game is responsible for sending and receiving UDP packets for the master + server updater. + + More info about this here: https://partner.steamgames.com/doc/api/ISteamGameServer#HandleIncomingPacket + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewCommunityFile"> + <summary> + Create a Normal Workshop item that can be subscribed to + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewMicrotransactionFile"> + <summary> + Workshop item that is meant to be voted on for the purpose of selling in-game + </summary> + </member> + <member name="F:Steamworks.Ugc.PublishResult.NeedsWorkshopAgreement"> + <summary> + https://partner.steamgames.com/doc/features/workshop/implementation#Legal + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Id"> + <summary> + The actual ID of this file + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Title"> + <summary> + The given title of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Description"> + <summary> + The description of this item, in your local language if available + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Tags"> + <summary> + A list of tags for this item, all lowercase + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CreatorApp"> + <summary> + App Id of the app that created this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ConsumerApp"> + <summary> + App Id of the app that will consume this item. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Owner"> + <summary> + User who created this content + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Score"> + <summary> + The bayesian average for up votes / total votes, between [0,1] + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Created"> + <summary> + Time when the published item was created + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Updated"> + <summary> + Time when the published item was last updated + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPublic"> + <summary> + True if this is publically visible + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsFriendsOnly"> + <summary> + True if this item is only visible by friends of the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPrivate"> + <summary> + True if this is only visible to the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsBanned"> + <summary> + True if this item has been banned + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsAcceptedForUse"> + <summary> + Whether the developer of this app has specifically flagged this item as accepted in the Workshop + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesUp"> + <summary> + The number of upvotes of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesDown"> + <summary> + The number of downvotes of this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Download(System.Boolean)"> + <summary> + Start downloading this item. + If this returns false the item isn't getting downloaded. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesTotal"> + <summary> + If we're downloading, how big the total download is + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesDownloaded"> + <summary> + If we're downloading, how much we've downloaded + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.SizeBytes"> + <summary> + If we're installed, how big is the install + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadAmount"> + <summary> + If we're downloading our current progress as a delta betwen 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.HasTag(System.String)"> + <summary> + A case insensitive check for tag + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Subscribe"> + <summary> + Allows the user to subscribe to this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.DownloadAsync(System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Allows the user to subscribe to download this item asyncronously + If CancellationToken is default then there is 60 seconds timeout + Progress will be set to 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Unsubscribe"> + <summary> + Allows the user to unsubscribe from this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.AddFavorite"> + <summary> + Adds item to user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.RemoveFavorite"> + <summary> + Removes item from user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Vote(System.Boolean)"> + <summary> + Allows the user to rate a workshop item up or down. + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.GetUserVote"> + <summary> + Gets the current users vote on the item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Url"> + <summary> + Return a URL to view this item online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ChangelogUrl"> + <summary> + The URl to view this item's changelog + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CommentsUrl"> + <summary> + The URL to view the comments on this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DiscussUrl"> + <summary> + The URL to discuss this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.StatsUrl"> + <summary> + The URL to view this items stats online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.PreviewImageUrl"> + <summary> + The URL to the preview image for this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Edit"> + <summary> + Edit this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAnyTag"> + <summary> + Found items must have at least one of the defined tags + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAllTags"> + <summary> + Found items must have all defined tags + </summary> + </member> + <member name="P:Steamworks.Epoch.Current"> + <summary> + Returns the current Unix Epoch + </summary> + </member> + <member name="M:Steamworks.Epoch.ToDateTime(System.Decimal)"> + <summary> + Convert an epoch to a datetime + </summary> + </member> + <member name="M:Steamworks.Epoch.FromDateTime(System.DateTime)"> + <summary> + Convert a DateTime to a unix time + </summary> + </member> + <member name="M:Steamworks.Helpers.TakeBuffer(System.Int32)"> + <summary> + Returns a buffer. This will get returned and reused later on. + </summary> + </member> + <member name="T:Steamworks.PreserveAttribute"> + <summary> + Prevent unity from stripping shit we depend on + https://docs.unity3d.com/Manual/ManagedCodeStripping.html + </summary> + </member> + </members> +</doc> diff --git a/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win32.deps.json b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win32.deps.json new file mode 100644 index 0000000..8743a21 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win32.deps.json @@ -0,0 +1,47 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "Facepunch.Steamworks.Win32/1.0.0": { + "dependencies": { + "NETStandard.Library": "2.0.3" + }, + "runtime": { + "Facepunch.Steamworks.Win32.dll": {} + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + } + } + }, + "libraries": { + "Facepunch.Steamworks.Win32/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + } + } +}
\ No newline at end of file diff --git a/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win32.dll b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win32.dll Binary files differnew file mode 100644 index 0000000..bf519d0 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win32.dll diff --git a/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win32.pdb b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win32.pdb Binary files differnew file mode 100644 index 0000000..b1bc291 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win32.pdb diff --git a/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win32.xml b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win32.xml new file mode 100644 index 0000000..176b6b1 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win32.xml @@ -0,0 +1,3474 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Facepunch.Steamworks.Win32</name> + </assembly> + <members> + <member name="T:Steamworks.CallResult`1"> + <summary> + An awaitable version of a SteamAPICall_t + </summary> + </member> + <member name="M:Steamworks.CallResult`1.OnCompleted(System.Action)"> + <summary> + This gets called if IsComplete returned false on the first call. + The Action "continues" the async call. We pass it to the Dispatch + to be called when the callback returns. + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetResult"> + <summary> + Gets the result. This is called internally by the async shit. + </summary> + </member> + <member name="P:Steamworks.CallResult`1.IsCompleted"> + <summary> + Return true if complete or failed + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetAwaiter"> + <summary> + This is what makes this struct awaitable + </summary> + </member> + <member name="T:Steamworks.ICallbackData"> + <summary> + Gives us a generic way to get the CallbackId of structs + </summary> + </member> + <member name="M:Steamworks.AuthTicket.Cancel"> + <summary> + Cancels a ticket. + You should cancel your ticket when you close the game or leave a server. + </summary> + </member> + <member name="T:Steamworks.Dispatch"> + <summary> + Responsible for all callback/callresult handling + + This manually pumps Steam's message queue and dispatches those + events to any waiting callbacks/callresults. + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnDebugCallback"> + <summary> + If set then we'll call this function every time a callback is generated. + + This is SLOW!! - it's for debugging - don't keep it on all the time. If you want to access a specific + callback then please create an issue on github and I'll add it! + + Params are : [Callback Type] [Callback Contents] [server] + + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnException"> + <summary> + Called if an exception happens during a callback/callresult. + This is needed because the exception isn't always accessible when running + async.. and can fail silently. With this hooked you won't be stuck wondering + what happened. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Init"> + <summary> + This gets called from Client/Server Init + It's important to switch to the manual dispatcher + </summary> + </member> + <member name="F:Steamworks.Dispatch.runningFrame"> + <summary> + Make sure we don't call Frame in a callback - because that'll cause some issues for everyone. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Frame(Steamworks.Data.HSteamPipe)"> + <summary> + Calls RunFrame and processes events from this Steam Pipe + </summary> + </member> + <member name="F:Steamworks.Dispatch.actionsToCall"> + <summary> + To be safe we don't call the continuation functions while iterating + the Callback list. This is maybe overly safe because the only way this + could be an issue is if the callback list is modified in the continuation + which would only happen if starting or shutting down in the callback. + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessCallback(Steamworks.Dispatch.CallbackMsg_t,System.Boolean)"> + <summary> + A callback is a general global message + </summary> + </member> + <member name="M:Steamworks.Dispatch.CallbackToString(Steamworks.CallbackType,System.IntPtr,System.Int32)"> + <summary> + Given a callback, try to turn it into a string + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessResult(Steamworks.Dispatch.CallbackMsg_t)"> + <summary> + A result is a reply to a specific command + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopClientAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopServerAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.OnCallComplete``1(Steamworks.Data.SteamAPICall_t,System.Action,System.Boolean)"> + <summary> + Watch for a steam api call + </summary> + </member> + <member name="M:Steamworks.Dispatch.Install``1(System.Action{``0},System.Boolean)"> + <summary> + Install a global callback. The passed function will get called if it's all good. + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.Numeric"> + <summary> + The score is just a simple numerical value + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeSeconds"> + <summary> + The score represents a time, in seconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeMilliSeconds"> + <summary> + The score represents a time, in milliseconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Ascending"> + <summary> + The top-score is the lowest number + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Descending"> + <summary> + The top-score is the highest number + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Unreliable"> + <summary> + Send the message unreliably. Can be lost. Messages *can* be larger than a + single MTU (UDP packet), but there is no retransmission, so if any piece + of the message is lost, the entire message will be dropped. + + The sending API does have some knowledge of the underlying connection, so + if there is no NAT-traversal accomplished or there is a recognized adjustment + happening on the connection, the packet will be batched until the connection + is open again. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoNagle"> + <summary> + Disable Nagle's algorithm. + By default, Nagle's algorithm is applied to all outbound messages. This means + that the message will NOT be sent immediately, in case further messages are + sent soon after you send this, which can be grouped together. Any time there + is enough buffered data to fill a packet, the packets will be pushed out immediately, + but partially-full packets not be sent until the Nagle timer expires. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoDelay"> + <summary> + If the message cannot be sent very soon (because the connection is still doing some initial + handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable + messages. Using this flag on reliable messages is invalid. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Reliable"> + Reliable message send. Can send up to 0.5mb in a single message. + Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for + efficient sends of large chunks of data. + </member> + <member name="P:Steamworks.Data.NetIdentity.LocalHost"> + <summary> + Return a NetIdentity that represents LocalHost + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.IsLocalHost"> + <summary> + Return true if this identity is localhost + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.SteamId)~Steamworks.Data.NetIdentity"> + <summary> + Convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetAddress)~Steamworks.Data.NetIdentity"> + <summary> + Set the specified Address + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetIdentity)~Steamworks.SteamId"> + <summary> + Automatically convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="P:Steamworks.Data.NetIdentity.SteamId"> + <summary> + Returns NULL if we're not a SteamId + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.Address"> + <summary> + Returns NULL if we're not a NetAddress + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.ToString"> + <summary> + We override tostring to provide a sensible representation + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Port"> + <summary> + The Port. This is redundant documentation. + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.AnyIp(System.UInt16)"> + <summary> + Any IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.LocalHost(System.UInt16)"> + <summary> + Localhost IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.String,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.Net.IPAddress,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Cleared"> + <summary> + Set everything to zero + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv6AllZeros"> + <summary> + Return true if the IP is ::0. (Doesn't check port.) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv4"> + <summary> + Return true if IP is mapped IPv4 + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsLocalHost"> + <summary> + Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Address"> + <summary> + Get the Address section + </summary> + </member> + <member name="T:Steamworks.Data.Connection"> + <summary> + Used as a base to create your client connection. This creates a socket + to a single connection. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Accept"> + <summary> + Accept an incoming connection that has been received on a listen socket. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Close(System.Boolean,System.Int32,System.String)"> + <summary> + Disconnects from the remote host and invalidates the connection handle. Any unread data on the connection is discarded.. + reasonCode is defined and used by you. + </summary> + </member> + <member name="P:Steamworks.Data.Connection.UserData"> + <summary> + Get/Set connection user data + </summary> + </member> + <member name="P:Steamworks.Data.Connection.ConnectionName"> + <summary> + A name for the connection, used mostly for debugging + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.IntPtr,System.Int32,Steamworks.Data.SendType)"> + <summary> + This is the best version to use. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],System.Int32,System.Int32,Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.String,Steamworks.Data.SendType)"> + <summary> + This creates a ton of garbage - so don't do anything with this beyond testing! + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Flush"> + <summary> + Flush any messages waiting on the Nagle timer and send them at the next transmission + opportunity (often that means right now). + </summary> + </member> + <member name="M:Steamworks.Data.Connection.DetailedStatus"> + <summary> + Returns detailed connection stats in text format. Useful + for dumping to a log, etc. + </summary> + <returns>Plain text connection info</returns> + </member> + <member name="T:Steamworks.Data.ConnectionInfo"> + <summary> + Describe the state of a connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.State"> + <summary> + High level state of the connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Address"> + <summary> + Remote address. Might be all 0's if we don't know it, or if this is N/A. + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Identity"> + <summary> + Who is on the other end? Depending on the connection type and phase of the connection, we might not know + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.EndReason"> + <summary> + Basic cause of the connection termination or problem. + </summary> + </member> + <member name="T:Steamworks.Data.NetPingLocation"> + <summary> + + Object that describes a "location" on the Internet with sufficient + detail that we can reasonably estimate an upper bound on the ping between + the two hosts, even if a direct route between the hosts is not possible, + and the connection must be routed through the Steam Datagram Relay network. + This does not contain any information that identifies the host. Indeed, + if two hosts are in the same building or otherwise have nearly identical + networking characteristics, then it's valid to use the same location + object for both of them. + + NOTE: This object should only be used in the same process! Do not serialize it, + send it over the wire, or persist it in a file or database! If you need + to do that, convert it to a string representation using the methods in + ISteamNetworkingUtils(). + + </summary> + </member> + <member name="M:Steamworks.Data.NetPingLocation.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + Estimate the round-trip latency between two arbitrary locations, in + milliseconds. This is a conservative estimate, based on routing through + the relay network. For most basic relayed connections, this ping time + will be pretty accurate, since it will be based on the route likely to + be actually used. + + If a direct IP route is used (perhaps via NAT traversal), then the route + will be different, and the ping time might be better. Or it might actually + be a bit worse! Standard IP routing is frequently suboptimal! + + But even in this case, the estimate obtained using this method is a + reasonable upper bound on the ping time. (Also it has the advantage + of returning immediately and not sending any packets.) + + In a few cases we might not able to estimate the route. In this case + a negative value is returned. k_nSteamNetworkingPing_Failed means + the reason was because of some networking difficulty. (Failure to + ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + currently answer the question for some other reason. + + Do you need to be able to do this from a backend/matchmaking server? + You are looking for the "ticketgen" library. + </member> + <member name="M:Steamworks.Data.Socket.Close"> + <summary> + Destroy a listen socket. All the connections that were accepting on the listen + socket are closed ungracefully. + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.State"> + <summary> + True if unlocked + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.UnlockTime"> + <summary> + Should hold the unlock time if State is true + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIcon"> + <summary> + Gets the icon of the achievement. This can return a null image even though the image exists if the image + hasn't been downloaded by Steam yet. You can use GetIconAsync if you want to wait for the image to be downloaded. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIconAsync(System.Int32)"> + <summary> + Gets the icon of the achievement, waits for it to load if we have to + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.GlobalUnlocked"> + <summary> + Returns the fraction (0-1) of users who have unlocked the specified achievement, or -1 if no data available. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Trigger(System.Boolean)"> + <summary> + Make this achievement earned + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Clear"> + <summary> + Reset this achievement to not achieved + </summary> + </member> + <member name="T:Steamworks.Data.DurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Appid"> + <summary> + appid generating playtime + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Applicable"> + <summary> + is duration control applicable to user + game combination + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeInLastFiveHours"> + <summary> + playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeToday"> + <summary> + playtime on current calendar day + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Progress"> + <summary> + recommended progress + </summary> + </member> + <member name="P:Steamworks.Data.Leaderboard.Name"> + <summary> + the name of a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.ReplaceScore(System.Int32,System.Int32[])"> + <summary> + Submit your score and replace your old score even if it was better + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.SubmitScoreAsync(System.Int32,System.Int32[])"> + <summary> + Submit your new score, but won't replace your high score if it's lower + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.AttachUgc(Steamworks.Data.Ugc)"> + <summary> + Attaches a piece of user generated content the user's entry on a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAsync(System.Int32,System.Int32)"> + <summary> + Used to query for a sequential range of leaderboard entries by leaderboard Sort. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAroundUserAsync(System.Int32,System.Int32)"> + <summary> + Used to retrieve leaderboard entries relative a user's entry. If there are not enough entries in the leaderboard + before or after the user's entry, Steam will adjust the range to try to return the number of entries requested. + For example, if the user is #1 on the leaderboard and start is set to -2, end is set to 2, Steam will return the first + 5 entries in the leaderboard. If The current user has no entry, this will return null. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresFromFriendsAsync"> + <summary> + Used to retrieve all leaderboard entries for friends of the current user + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Join"> + <summary> + Try to join this room. Will return RoomEnter.Success on success, + and anything else is a failure + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Leave"> + <summary> + Leave a lobby; this will take effect immediately on the client side + other users in the lobby will be notified by a LobbyChatUpdate_t callback + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.InviteFriend(Steamworks.SteamId)"> + <summary> + Invite another user to the lobby + will return true if the invite is successfully sent, whether or not the target responds + returns false if the local user is not connected to the Steam servers + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MemberCount"> + <summary> + returns the number of users in the specified lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Members"> + <summary> + Returns current members. Need to be in the lobby to see the users. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetData(System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetData(System.String,System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.DeleteData(System.String)"> + <summary> + Removes a metadata key from the lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Data"> + <summary> + Get all data for this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetMemberData(Steamworks.Friend,System.String)"> + <summary> + Gets per-user metadata for someone in this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetMemberData(System.String,System.String)"> + <summary> + Sets per-user metadata (for the local user implicitly) + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatString(System.String)"> + <summary> + Sends a string to the chat room + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatBytes(System.Byte[])"> + <summary> + Sends bytes the the chat room + this isn't exposed because there's no way to read raw bytes atm, + and I figure people can send json if they want something more advanced + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Refresh"> + <summary> + Refreshes metadata for a lobby you're not necessarily in right now + you never do this for lobbies you're a member of, only if your + this will send down all the metadata associated with a lobby + this is an asynchronous call + returns false if the local user is not connected to the Steam servers + results will be returned by a LobbyDataUpdate_t callback + if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MaxMembers"> + <summary> + Max members able to join this lobby. Cannot be over 250. + Can only be set by the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(Steamworks.SteamId)"> + <summary> + [SteamID variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(System.String,System.UInt16)"> + <summary> + [IP/Port variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetGameServer(System.UInt32@,System.UInt16@,Steamworks.SteamId@)"> + <summary> + Gets the details of the lobby's game server, if set. Returns true if the lobby is + valid and has a server set, otherwise returns false. + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Owner"> + <summary> + You must be the lobby owner to set the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.IsOwnedBy(Steamworks.SteamId)"> + <summary> + Check if the specified SteamId owns the lobby + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceClose"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceFar"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceWorldwide"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithKeyValue(System.String,System.String)"> + <summary> + Filter by specified key/value pair; string parameters + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithLower(System.String,System.Int32)"> + <summary> + Numerical filter where value is less than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithHigher(System.String,System.Int32)"> + <summary> + Numerical filter where value is greater than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must be equal to the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithNotEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must not equal the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.AddNumericalFilter(System.String,System.Int32,Steamworks.LobbyComparison)"> + <summary> + Test key, initialize numerical filter list if necessary, then add new numerical filter + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.OrderByNear(System.String,System.Int32)"> + <summary> + Order filtered results according to key/values nearest the provided key/value pair. + Can specify multiple near value filters; each successive filter is lower priority than the previous. + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithSlotsAvailable(System.Int32)"> + <summary> + returns only lobbies with the specified number of slots available + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithMaxResults(System.Int32)"> + <summary> + sets how many results to return, the lower the count the faster it is to download the lobby results + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.RequestAsync"> + <summary> + Run the query, get the matching lobbies + </summary> + </member> + <member name="T:Steamworks.Data.OutgoingPacket"> + <summary> + A server query packet. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Address"> + <summary> + Target IP address + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Port"> + <summary> + Target port + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Data"> + <summary> + This data is pooled. Make a copy if you don't use it immediately. + This buffer is also quite large - so pay attention to Size. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Size"> + <summary> + Size of the data + </summary> + </member> + <member name="T:Steamworks.Data.RemotePlaySession"> + <summary> + Represents a RemotePlaySession from the SteamRemotePlay interface + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.IsValid"> + <summary> + Returns true if this session was valid when created. This will stay true even + after disconnection - so be sure to watch SteamRemotePlay.OnSessionDisconnected + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.SteamId"> + <summary> + Get the SteamID of the connected user + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.ClientName"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.FormFactor"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagUser(Steamworks.SteamId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.SetLocation(System.String)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagPublishedFile(Steamworks.Data.PublishedFileId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="P:Steamworks.Data.ServerInfo.Tags"> + <summary> + Gets the individual tags for this server + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToHistory"> + <summary> + Add this server to our history list + If we're already in the history list, weill set the last played time to now + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.QueryRulesAsync"> + <summary> + If this server responds to source engine style queries, we'll be able to get a list of rules here + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromHistory"> + <summary> + Remove this server from our history list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToFavourites"> + <summary> + Add this server to our favourite list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromFavourites"> + <summary> + Remove this server from our favourite list + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultStatus(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Find out the status of an asynchronous inventory result handle. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultItems(Steamworks.Data.SteamInventoryResult_t,Steamworks.Data.SteamItemDetails_t[],System.UInt32@)"> + <summary> + Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultTimestamp(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.CheckResultSteamID(Steamworks.Data.SteamInventoryResult_t,Steamworks.SteamId)"> + <summary> + Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.DestroyResult(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Destroys a result handle and frees all associated memory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetAllItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + Captures the entire state of the current users Steam inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetItemsByID(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId@,System.UInt32)"> + <summary> + Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GrantPromoItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only). + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.ConsumeItem(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId,System.UInt32)"> + <summary> + ConsumeItem() removes items from the inventory permanently. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.SendItemDropHeartbeat"> + <summary> + Deprecated method. Playtime accounting is performed on the Steam servers. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.TriggerItemDrop(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryDefId)"> + <summary> + Playtime credit must be consumed and turned into item drops by your game. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.LoadItemDefinitions"> + <summary> + LoadItemDefinitions triggers the automatic load and refresh of item definitions. + </summary> + </member> + <member name="M:Steamworks.ISteamUserStats.DownloadLeaderboardEntriesForUsers(Steamworks.Data.SteamLeaderboard_t,Steamworks.SteamId[],System.Int32)"> + <summary> + Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.Interface"> + <summary> + An optional interface to use instead of deriving + </summary> + </member> + <member name="F:Steamworks.ConnectionManager.Connection"> + <summary> + The actual connection we're managing + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.ConnectionInfo"> + <summary> + The last received ConnectionInfo + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We're trying to connect! + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We started connecting to this guy + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + We got disconnected + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnMessage(System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Must call Accept or Close on the connection within a second or so + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection leaves + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnMessage(Steamworks.Data.Connection,Steamworks.Data.NetIdentity,System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message from a connection + </summary> + </member> + <member name="T:Steamworks.SocketManager"> + <summary> + Used as a base to create your networking server. This creates a socket + and listens/communicates with multiple queries. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Default behaviour is to accept every connection + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="P:Steamworks.ServerList.Base.AppId"> + <summary> + Which app we're querying. Defaults to the current app. + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnChanges"> + <summary> + When a new server is added, this function will get called + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnResponsiveServer"> + <summary> + Called for every responsive server + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Responsive"> + <summary> + A list of servers that responded. If you're only interested in servers that responded since you + last updated, then simply clear this list. + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Unresponsive"> + <summary> + A list of servers that were in the master list but didn't respond. + </summary> + </member> + <member name="M:Steamworks.ServerList.Base.RunQueryAsync(System.Single)"> + <summary> + Query the server list. Task result will be true when finished + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamApps"> + <summary> + Exposes a wide range of information and actions for applications and Downloadable Content (DLC). + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnDlcInstalled"> + <summary> + posted after the user gains ownership of DLC and that DLC is installed + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnNewLaunchParameters"> + <summary> + posted after the user gains executes a Steam URL with command line or query parameters + such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc + while the game is already running. The new params can be queried + with GetLaunchQueryParam and GetLaunchCommandLine + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribed"> + <summary> + Checks if the active user is subscribed to the current App ID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFamilySharing"> + <summary> + Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsLowVoilence"> + <summary> + Checks if the license owned by the user provides low violence depots. + Low violence depots are useful for copies sold in countries that have content restrictions + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsCybercafe"> + <summary> + Checks whether the current App ID license is for Cyber Cafes. + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsVACBanned"> + <summary> + CChecks if the user has a VAC ban on their account + </summary> + </member> + <member name="P:Steamworks.SteamApps.GameLanguage"> + <summary> + Gets the current language that the user has set. + This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AvailableLanguages"> + <summary> + Gets a list of the languages the current app supports. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsSubscribedToApp(Steamworks.AppId)"> + <summary> + Checks if the active user is subscribed to a specified AppId. + Only use this if you need to check ownership of another game related to yours, a demo for example. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsDlcInstalled(Steamworks.AppId)"> + <summary> + Checks if the user owns a specific DLC and if the DLC is installed + </summary> + </member> + <member name="M:Steamworks.SteamApps.PurchaseTime(Steamworks.AppId)"> + <summary> + Returns the time of the purchase of the app + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFreeWeekend"> + <summary> + Checks if the user is subscribed to the current app through a free weekend + This function will return false for users who have a retail or other type of license + Before using, please ask your Valve technical contact how to package and secure your free weekened + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcInformation"> + <summary> + Returns metadata for all available DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.UninstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="P:Steamworks.SteamApps.CurrentBetaName"> + <summary> + Returns null if we're not on a beta branch, else the name of the branch + </summary> + </member> + <member name="M:Steamworks.SteamApps.MarkContentCorrupt(System.Boolean)"> + <summary> + Allows you to force verify game content on next launch. + + If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), + you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit. + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstalledDepots(Steamworks.AppId)"> + <summary> + Gets a list of all installed depots for a given App ID in mount order + </summary> + </member> + <member name="M:Steamworks.SteamApps.AppInstallDir(Steamworks.AppId)"> + <summary> + Gets the install folder for a specific AppID. + This works even if the application is not installed, based on where the game would be installed with the default Steam library location. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsAppInstalled(Steamworks.AppId)"> + <summary> + The app may not actually be owned by the current user, they may have it left over from a free weekend, etc. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AppOwner"> + <summary> + Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed.. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetLaunchParam(System.String)"> + <summary> + Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. + Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. + Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + but it is advised that you not param names beginning with an underscore for your own features. + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcDownloadProgress(Steamworks.AppId)"> + <summary> + Gets the download progress for optional DLC. + </summary> + </member> + <member name="P:Steamworks.SteamApps.BuildId"> + <summary> + Gets the buildid of this app, may change at any time based on backend updates to the game. + Defaults to 0 if you're not running a build downloaded from steam. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetFileDetailsAsync(System.String)"> + <summary> + Asynchronously retrieves metadata details about a specific file in the depot manifest. + Currently provides: + </summary> + </member> + <member name="P:Steamworks.SteamApps.CommandLine"> + <summary> + Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. + This method of passing a connect string (used when joining via rich presence, accepting an + invite, etc) is preferable to passing the connect string on the operating system command + line, which is a security risk. In order for rich presence joins to go through this + path and not be placed on the OS command line, you must set a value in your app's + configuration on Steam. Ask Valve for help with this. + </summary> + </member> + <member name="M:Steamworks.SteamClient.Init(System.UInt32,System.Boolean)"> + <summary> + Initialize the steam client. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="P:Steamworks.SteamClient.IsLoggedOn"> + <summary> + Checks if the current user's Steam client is connected to the Steam servers. + If it's not then no real-time services provided by the Steamworks API will be enabled. The Steam + client will automatically be trying to recreate the connection as often as possible. When the + connection is restored a SteamServersConnected_t callback will be posted. + You usually don't need to check for this yourself. All of the API calls that rely on this will + check internally. Forcefully disabling stuff when the player loses access is usually not a + very good experience for the player and you could be preventing them from accessing APIs that do not + need a live connection to Steam. + </summary> + </member> + <member name="P:Steamworks.SteamClient.SteamId"> + <summary> + Gets the Steam ID of the account currently logged into the Steam client. This is + commonly called the 'current user', or 'local user'. + A Steam ID is a unique identifier for a Steam accounts, Steam groups, Lobbies and Chat + rooms, and used to differentiate users in all parts of the Steamworks API. + </summary> + </member> + <member name="P:Steamworks.SteamClient.Name"> + <summary> + returns the local players name - guaranteed to not be NULL. + this is the same name as on the users community profile page + </summary> + </member> + <member name="P:Steamworks.SteamClient.State"> + <summary> + gets the status of the current user + </summary> + </member> + <member name="P:Steamworks.SteamClient.AppId"> + <summary> + returns the appID of the current process + </summary> + </member> + <member name="M:Steamworks.SteamClient.RestartAppIfNecessary(System.UInt32)"> + <summary> + Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't + this returns true then it starts the Steam client if required and launches your game again through it, + and you should quit your process as soon as possible. This effectively runs steam://run/AppId so it + may not relaunch the exact executable that called it, as it will always relaunch from the version + installed in your Steam library folder/ + Note that during development, when not launching via Steam, this might always return true. + </summary> + </member> + <member name="M:Steamworks.SteamClient.ValidCheck"> + <summary> + Called in interfaces that rely on this being initialized + </summary> + </member> + <member name="T:Steamworks.SteamFriends"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnChatMessage"> + <summary> + Called when chat message has been received from a friend. You'll need to turn on + ListenForFriendsMessages to recieve this. (friend, msgtype, message) + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnPersonaStateChange"> + <summary> + called when a friends' status changes + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameRichPresenceJoinRequested"> + <summary> + Called when the user tries to join a game from their friends list + rich presence will have been set with the "connect" key which is set here + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameOverlayActivated"> + <summary> + Posted when game overlay activates or deactivates + the game can use this to be pause or resume single player games + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameServerChangeRequested"> + <summary> + Called when the user tries to join a different game server from their friends list + game client should attempt to connect to specified server when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameLobbyJoinRequested"> + <summary> + Called when the user tries to join a lobby from their friends list + game client should attempt to connect to specified lobby when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnFriendRichPresenceUpdate"> + <summary> + Callback indicating updated data about friends rich presence information + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenOverlay(System.String)"> + <summary> + The dialog to open. Valid options are: + "friends", + "community", + "players", + "settings", + "officialgamegroup", + "stats", + "achievements". + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenUserOverlay(Steamworks.SteamId,System.String)"> + <summary> + "steamid" - Opens the overlay web browser to the specified user or groups profile. + "chat" - Opens a chat window to the specified user, or joins the group chat. + "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API. + "stats" - Opens the overlay web browser to the specified user's stats. + "achievements" - Opens the overlay web browser to the specified user's achievements. + "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend. + "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend. + "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite. + "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenStoreOverlay(Steamworks.AppId)"> + <summary> + Activates the Steam Overlay to the Steam store page for the provided app. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenWebOverlay(System.String,System.Boolean)"> + <summary> + Activates Steam Overlay web browser directly to the specified URL. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenGameInviteOverlay(Steamworks.SteamId)"> + <summary> + Activates the Steam Overlay to open the invite dialog. Invitations sent from this dialog will be for the provided lobby. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetPlayedWith(Steamworks.SteamId)"> + <summary> + Mark a target user as 'played with'. + NOTE: The current user must be in game with the other player for the association to work. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.RequestUserInformation(Steamworks.SteamId,System.Boolean)"> + <summary> + Requests the persona name and optionally the avatar of a specified user. + NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them. + returns true if we're fetching the data, false if we already have it + </summary> + </member> + <member name="M:Steamworks.SteamFriends.GetRichPresence(System.String)"> + <summary> + Find a rich presence value by key for current user. Will be null if not found. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetRichPresence(System.String,System.String)"> + <summary> + Sets a rich presence value by key for current user. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.ClearRichPresence"> + <summary> + Clears all of the current user's rich presence data. + </summary> + </member> + <member name="P:Steamworks.SteamFriends.ListenForFriendsMessages"> + <summary> + Listens for Steam friends chat messages. + You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. + After enabling this you will receive callbacks when ever the user receives a chat message. + </summary> + </member> + <member name="M:Steamworks.SteamInput.RunFrame"> + <summary> + You shouldn't really need to call this because it get called by RunCallbacks on SteamClient + but Valve think it might be a nice idea if you call it right before you get input info - + just to make sure the info you're getting is 100% up to date. + </summary> + </member> + <member name="P:Steamworks.SteamInput.Controllers"> + <summary> + Return a list of connected controllers. + </summary> + </member> + <member name="M:Steamworks.SteamInput.GetDigitalActionGlyph(Steamworks.Controller,System.String)"> + <summary> + Return an absolute path to the PNG image glyph for the provided digital action name. The current + action set in use for the controller will be used for the lookup. You should cache the result and + maintain your own list of loaded PNG assets. + </summary> + <param name="controller"></param> + <param name="action"></param> + <returns></returns> + </member> + <member name="T:Steamworks.SteamInventory"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamInventory.LoadItemDefinitions"> + <summary> + Call this if you're going to want to access definition information. You should be able to get + away with calling this once at the start if your game, assuming your items don't change all the time. + This will trigger OnDefinitionsUpdated at which point Definitions should be set. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.WaitForDefinitions(System.Single)"> + <summary> + Will call LoadItemDefinitions and wait until Definitions is not null + </summary> + </member> + <member name="M:Steamworks.SteamInventory.FindDefinition(Steamworks.Data.InventoryDefId)"> + <summary> + Try to find the definition that matches this definition ID. + Uses a dictionary so should be about as fast as possible. + </summary> + </member> + <member name="P:Steamworks.SteamInventory.Items"> + <summary> + We will try to keep this list of your items automatically up to date. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItems"> + <summary> + Update the list of Items[] + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItemsAsync"> + <summary> + Get all items and return the InventoryResult + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GenerateItemAsync(Steamworks.InventoryDef,System.Int32)"> + <summary> + This is used to grant a specific item to the user. This should + only be used for development prototyping, from a trusted server, + or if you don't care about hacked clients granting arbitrary items. + This call can be disabled by a setting on Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem.Amount[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.DeserializeAsync(System.Byte[],System.Int32)"> + <summary> + Deserializes a result set and verifies the signature bytes. + This call has a potential soft-failure mode where the Result is expired, it will + still succeed in this mode.The "expired" + result could indicate that the data may be out of date - not just due to timed + expiration( one hour ), but also because one of the items in the result set may + have been traded or consumed since the result set was generated.You could compare + the timestamp from GetResultTimestamp to ISteamUtils::GetServerRealTime to determine + how old the data is. You could simply ignore the "expired" result code and + continue as normal, or you could request the player with expired data to send + an updated result set. + You should call CheckResultSteamID on the result handle when it completes to verify + that a remote player is not pretending to have a different user's inventory. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GrantPromoItemsAsync"> + <summary> + Grant all promotional items the user is eligible for + </summary> + </member> + <member name="M:Steamworks.SteamInventory.TriggerItemDropAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger an item drop for this user. This is for timed drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.AddPromoItemAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger a promo item drop. You can call this at startup, it won't + give users multiple promo drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.StartPurchaseAsync(Steamworks.InventoryDef[])"> + <summary> + Start buying a cart load of items. This will return a positive result is the purchase has + begun. You should listen out for SteamUser.OnMicroTxnAuthorizationResponse for a success. + </summary> + </member> + <member name="T:Steamworks.SteamMatchmaking"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="P:Steamworks.SteamMatchmaking.MaxLobbyKeyLength"> + <summary> + Maximum number of characters a lobby metadata key can be + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyInvite"> + <summary> + Someone invited you to a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyEntered"> + <summary> + You joined a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyCreated"> + <summary> + You created a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyGameCreated"> + <summary> + A game server has been associated with the lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyDataChanged"> + <summary> + The lobby metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDataChanged"> + <summary> + The lobby member metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberJoined"> + <summary> + The lobby member joined + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberLeave"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDisconnected"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberKicked"> + <summary> + The lobby member was kicked. The 3rd param is the user that kicked them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberBanned"> + <summary> + The lobby member was banned. The 3rd param is the user that banned them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnChatMessage"> + <summary> + A chat message was recieved from a member of a lobby + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.CreateLobbyAsync(System.Int32)"> + <summary> + Creates a new invisible lobby. Call lobby.SetPublic to take it online. + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.JoinLobbyAsync(Steamworks.SteamId)"> + <summmary> + Attempts to directly join the specified lobby + </summmary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetFavoriteServers"> + <summary> + Get a list of servers that are on your favorites list + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetHistoryServers"> + <summary> + Get a list of servers that you have added to your play history + </summary> + </member> + <member name="T:Steamworks.SteamMatchmakingServers"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="T:Steamworks.SteamMusic"> + <summary> + Functions to control music playback in the steam client. + This gives games the opportunity to do things like pause the music or lower the volume, + when an important cut scene is shown, and start playing afterwards. + Nothing uses Steam Music though so this can probably get fucked + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnPlaybackChanged"> + <summary> + Playback status changed + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnVolumeChanged"> + <summary> + Volume changed, parameter is new volume + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsEnabled"> + <summary> + Checks if Steam Music is enabled + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsPlaying"> + <summary> + true if a song is currently playing, paused, or queued up to play; otherwise false. + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Status"> + <summary> + Gets the current status of the Steam Music player + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayPrevious"> + <summary> + Have the Steam Music player play the previous song. + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayNext"> + <summary> + Have the Steam Music player skip to the next song + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Volume"> + <summary> + Gets/Sets the current volume of the Steam Music player + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PSessionRequest"> + <summary> + This SteamId wants to send you a message. You should respond by calling AcceptP2PSessionWithUser + if you want to recieve their messages + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PConnectionFailed"> + <summary> + Called when packets can't get through to the specified user. + All queued packets unsent at this point will be dropped, further attempts + to send will retry making the connection (but will be dropped if we fail again). + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AcceptP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called in response to a OnP2PSessionRequest + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AllowP2PPacketRelay(System.Boolean)"> + <summary> + Allow or disallow P2P connects to fall back on Steam server relay if direct + connection or NAT traversal can't be established. Applies to connections + created after setting or old connections that need to reconnect. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.CloseP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called when you're done communicating with a user, as this will + free up all of the resources allocated for the connection under-the-hood. + If the remote user tries to send data to you again, a new OnP2PSessionRequest + callback will be posted + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.IsP2PPacketAvailable(System.Int32)"> + <summary> + Checks if a P2P packet is available to read, and gets the size of the message if there is one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte[],System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte*,System.UInt32,System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte[],System.Int32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte*,System.UInt32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket``1(Steamworks.Data.NetAddress)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6) + + To use this derive a class from SocketManager and override as much as you want. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket(Steamworks.Data.NetAddress,Steamworks.ISocketManager)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6). + + To use this you should pass a class that inherits ISocketManager. You can use + SocketManager to get connections and send messages, but the ISocketManager class + will received all the appropriate callbacks. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal``1(Steamworks.Data.NetAddress)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal(Steamworks.Data.NetAddress,Steamworks.IConnectionManager)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateRelaySocket``1(System.Int32)"> + <summary> + Creates a server that will be relayed via Valve's network (hiding the IP and improving ping) + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectRelay``1(Steamworks.SteamId,System.Int32)"> + <summary> + Connect to a relay server + </summary> + </member> + <member name="T:Steamworks.SteamNetworkingUtils"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamNetworkingUtils.OnDebugOutput"> + <summary> + A function to receive debug network information on. This will do nothing + unless you set DebugLevel to something other than None. + + You should set this to an appropriate level instead of setting it to the highest + and then filtering it by hand because a lot of energy is used by creating the strings + and your frame rate will tank and you won't know why. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Status"> + <summary> + The latest available status gathered from the SteamRelayNetworkStatus callback + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.InitRelayNetworkAccess"> + <summary> + If you know that you are going to be using the relay network (for example, + because you anticipate making P2P connections), call this to initialize the + relay network. If you do not call this, the initialization will + be delayed until the first time you use a feature that requires access + to the relay network, which will delay that first access. + + You can also call this to force a retry if the previous attempt has failed. + Performing any action that requires access to the relay network will also + trigger a retry, and so calling this function is never strictly necessary, + but it can be useful to call it a program launch time, if access to the + relay network is anticipated. + + Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + callbacks to know when initialization has completed. + Typically initialization completes in a few seconds. + + Note: dedicated servers hosted in known data centers do *not* need + to call this, since they do not make routing decisions. However, if + the dedicated server will be using P2P functionality, it will act as + a "client" and this should be called. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.LocalPingLocation"> + <summary> + Return location info for the current host. + + It takes a few seconds to initialize access to the relay network. If + you call this very soon after startup the data may not be available yet. + + This always return the most up-to-date information we have available + right now, even if we are in the middle of re-calculating ping times. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + <summary> + Same as PingLocation.EstimatePingTo, but assumes that one location is the local host. + This is a bit faster, especially if you need to calculate a bunch of + these in a loop to find the fastest one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.WaitForPingDataAsync(System.Single)"> + <summary> + If you need ping information straight away, wait on this. It will return + immediately if you already have up to date ping data + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.ConnectionTimeout"> + <summary> + Timeout value (in ms) to use when first connecting + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Timeout"> + <summary> + Timeout value (in ms) to use after connection is established + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.SendBufferSize"> + <summary> + Upper limit of buffered pending bytes to be sent. + If this is reached SendMessage will return LimitExceeded. + Default is 524288 bytes (512k) + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.DebugLevel"> + <summary> + Get Debug Information via OnDebugOutput event + + Except when debugging, you should only use NetDebugOutput.Msg + or NetDebugOutput.Warning. For best performance, do NOT + request a high detail level and then filter out messages in the callback. + + This incurs all of the expense of formatting the messages, which are then discarded. + Setting a high priority value (low numeric value) here allows the library to avoid + doing this work. + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugLevel"> + <summary> + So we can remember and provide a Get for DebugLEvel + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugFunc"> + <summary> + We need to keep the delegate around until it's not used anymore + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OnDebugMessage(Steamworks.NetDebugOutput,System.IntPtr)"> + <summary> + This can be called from other threads - so we're going to queue these up and process them in a safe place. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OutputDebugMessages"> + <summary> + Called regularly from the Dispatch loop so we can provide a timely + stream of messages. + </summary> + </member> + <member name="T:Steamworks.SteamParental"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamParental.OnSettingsChanged"> + <summary> + Parental Settings Changed + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockEnabled"> + <summary> + + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockLocked"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsAppBlocked(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsAppInBlockList(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsFeatureBlocked(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsFeatureInBlockList(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="T:Steamworks.SteamParties"> + <summary> + This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. + Tell Steam the number of player spots that are available for your party, and a join-game string, and it + will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. + Adjust the number of open slots if other players join through alternate matchmaking methods. + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnBeaconLocationsUpdated"> + <summary> + The list of possible Party beacon locations has changed + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnActiveBeaconsUpdated"> + <summary> + The list of active beacons may have changed + </summary> + </member> + <member name="T:Steamworks.SteamRemotePlay"> + <summary> + Functions that provide information about Steam Remote Play sessions, streaming your game content to another computer or to a Steam Link app or hardware. + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionConnected"> + <summary> + Called when a session is connected + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionDisconnected"> + <summary> + Called when a session becomes disconnected + </summary> + </member> + <member name="P:Steamworks.SteamRemotePlay.SessionCount"> + <summary> + Get the number of currently connected Steam Remote Play sessions + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.GetSession(System.Int32)"> + <summary> + Get the currently connected Steam Remote Play session ID at the specified index. + IsValid will return false if it's out of bounds + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.SendInvite(Steamworks.SteamId)"> + <summary> + Invite a friend to Remote Play Together + This returns false if the invite can't be sent + </summary> + </member> + <member name="T:Steamworks.SteamRemoteStorage"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileWrite(System.String,System.Byte[])"> + <summary> + Creates a new file, writes the bytes to the file, and then closes the file. + If the target file already exists, it is overwritten + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileRead(System.String)"> + <summary> + Opens a binary file, reads the contents of the file into a byte array, and then closes the file. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileExists(System.String)"> + <summary> + Checks whether the specified file exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FilePersisted(System.String)"> + <summary> + Checks if a specific file is persisted in the steam cloud. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileTime(System.String)"> + <summary> + Gets the specified file's last modified date/time. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileSize(System.String)"> + <summary> + Gets the specified files size in bytes. 0 if not exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileForget(System.String)"> + <summary> + Deletes the file from remote storage, but leaves it on the local disk and remains accessible from the API. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileDelete(System.String)"> + <summary> + Deletes a file from the local disk, and propagates that delete to the cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaBytes"> + <summary> + Number of bytes total + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaUsedBytes"> + <summary> + Number of bytes used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaRemainingBytes"> + <summary> + Number of bytes remaining until your quota is used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabled"> + <summary> + returns true if IsCloudEnabledForAccount AND IsCloudEnabledForApp + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForAccount"> + <summary> + Checks if the account wide Steam Cloud setting is enabled for this user + or if they disabled it in the Settings->Cloud dialog. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForApp"> + <summary> + Checks if the per game Steam Cloud setting is enabled for this user + or if they disabled it in the Game Properties->Update dialog. + + This must only ever be set as the direct result of the user explicitly + requesting that it's enabled or not. This is typically accomplished with + a checkbox within your in-game options + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.FileCount"> + <summary> + Gets the total number of local files synchronized by Steam Cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.Files"> + <summary> + Get a list of filenames synchronized by Steam Cloud + </summary> + </member> + <member name="T:Steamworks.SteamScreenshots"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotRequested"> + <summary> + A screenshot has been requested by the user from the Steam screenshot hotkey. + This will only be called if Hooked is true, in which case Steam + will not take the screenshot itself. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotReady"> + <summary> + A screenshot successfully written or otherwise added to the library and can now be tagged. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotFailed"> + <summary> + A screenshot attempt failed + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.WriteScreenshot(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.AddScreenshot(System.String,System.String,System.Int32,System.Int32)"> + <summary> + Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + JPEG, TGA, and PNG formats are supported. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.TriggerScreenshot"> + <summary> + Causes the Steam overlay to take a screenshot. + If screenshots are being hooked by the game then a + ScreenshotRequested callback is sent back to the game instead. + </summary> + </member> + <member name="P:Steamworks.SteamScreenshots.Hooked"> + <summary> + Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or if the game handles them. + Hooking is disabled by default, and only ever enabled if you do so with this function. + If the hooking is enabled, then the ScreenshotRequested_t callback will be sent if the user presses the hotkey or + when TriggerScreenshot is called, and then the game is expected to call WriteScreenshot or AddScreenshotToLibrary in response. + </summary> + </member> + <member name="T:Steamworks.SteamServer"> + <summary> + Provides the core of the Steam Game Servers API + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnValidateAuthTicketResponse"> + <summary> + User has been authed or rejected + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the server now is logged on and has a working connection to the Steam master server. + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServerConnectFailure"> + <summary> + This will occur periodically if the Steam client is not connected, and has failed when retrying to establish a connection (result, stilltrying) + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersDisconnected"> + <summary> + Disconnected from Steam + </summary> + </member> + <member name="M:Steamworks.SteamServer.Init(Steamworks.AppId,Steamworks.SteamServerInit,System.Boolean)"> + <summary> + Initialize the steam server. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="M:Steamworks.SteamServer.RunCallbacks"> + <summary> + Run the callbacks. This is also called in Async callbacks. + </summary> + </member> + <member name="P:Steamworks.SteamServer.DedicatedServer"> + <summary> + Sets whether this should be marked as a dedicated server. + If not, it is assumed to be a listen server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MaxPlayers"> + <summary> + Gets or sets the current MaxPlayers. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.BotCount"> + <summary> + Gets or sets the current BotCount. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MapName"> + <summary> + Gets or sets the current Map Name. + </summary> + </member> + <member name="P:Steamworks.SteamServer.ModDir"> + <summary> + Gets or sets the current ModDir + </summary> + </member> + <member name="P:Steamworks.SteamServer.Product"> + <summary> + Gets the current product + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameDescription"> + <summary> + Gets or sets the current Product + </summary> + </member> + <member name="P:Steamworks.SteamServer.ServerName"> + <summary> + Gets or sets the current ServerName + </summary> + </member> + <member name="P:Steamworks.SteamServer.Passworded"> + <summary> + Set whether the server should report itself as passworded + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameTags"> + <summary> + Gets or sets the current GameTags. This is a comma seperated list of tags for this server. + When querying the server list you can filter by these tags. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOnAnonymous"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOff"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="P:Steamworks.SteamServer.LoggedOn"> + <summary> + Returns true if the server is connected and registered with the Steam master server + You should have called LogOnAnonymous etc on startup. + </summary> + </member> + <member name="P:Steamworks.SteamServer.PublicIp"> + <summary> + To the best of its ability this tries to get the server's + current public ip address. Be aware that this is likely to return + null for the first few seconds after initialization. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeats"> + <summary> + Enable or disable heartbeats, which are sent regularly to the master server. + Enabled by default. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeatRate"> + <summary> + Set heartbeat interval, if automatic heartbeats are enabled. + You can leave this at the default. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ForceHeartbeat"> + <summary> + Force send a heartbeat to the master server instead of waiting + for the next automatic update (if you've left them enabled) + </summary> + </member> + <member name="M:Steamworks.SteamServer.UpdatePlayer(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Update this connected player's information. You should really call this + any time a player's name or score changes. This keeps the information shown + to server queries up to date. + </summary> + </member> + <member name="M:Steamworks.SteamServer.SetKey(System.String,System.String)"> + <summary> + Sets a Key Value. These can be anything you like, and are accessible + when querying servers from the server list. + + Information describing gamemodes are common here. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ClearKeys"> + <summary> + Remove all key values + </summary> + </member> + <member name="M:Steamworks.SteamServer.BeginAuthSession(System.Byte[],Steamworks.SteamId)"> + <summary> + Start authorizing a ticket. This user isn't authorized yet. Wait for a call to OnAuthChange. + </summary> + </member> + <member name="M:Steamworks.SteamServer.EndSession(Steamworks.SteamId)"> + <summary> + Forget this guy. They're no longer in the game. + </summary> + </member> + <member name="M:Steamworks.SteamServer.GetOutgoingPacket(Steamworks.Data.OutgoingPacket@)"> + <summary> + If true, Steam wants to send a packet. You should respond by sending + this packet in an unconnected way to the returned Address and Port. + </summary> + <param name="packet">Packet to send. The Data passed is pooled - so use it immediately.</param> + <returns>True if we want to send a packet</returns> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.Byte[],System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.IntPtr,System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.UserHasLicenseForApp(Steamworks.SteamId,Steamworks.AppId)"> + <summary> + Does the user own this app (which could be DLC) + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.RequestUserStatsAsync(Steamworks.SteamId)"> + <summary> + Downloads stats for the user + If the user has no stats will return fail + these stats will only be auto-updated for clients playing on the server + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Unlocks the specified achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.ClearAchievement(Steamworks.SteamId,System.String)"> + <summary> + Resets the unlock status of an achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Return true if available, exists and unlocked + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.StoreUserStats(Steamworks.SteamId)"> + <summary> + Once you've set a stat change on a user you need to commit your changes. + You can do that using this function. The callback will let you know if + your action succeeded, but most of the time you can fire and forget. + </summary> + </member> + <member name="T:Steamworks.SteamUGC"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUGC.OnDownloadItemResult"> + <summary> + Posted after Download call + </summary> + </member> + <member name="M:Steamworks.SteamUGC.Download(Steamworks.Data.PublishedFileId,System.Boolean)"> + <summary> + Start downloading this item. You'll get notified of completion via OnDownloadItemResult. + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="highPriority">If true this should go straight to the top of the download list</param> + <returns>true if nothing went wrong and the download is started</returns> + </member> + <member name="M:Steamworks.SteamUGC.DownloadAsync(Steamworks.Data.PublishedFileId,System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Will attempt to download this item asyncronously - allowing you to instantly react to its installation + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="progress">An optional callback</param> + <param name="ct">Allows you to send a message to cancel the download anywhere during the process</param> + <param name="milisecondsUpdateDelay">How often to call the progress function</param> + <returns>true if downloaded and installed correctly</returns> + </member> + <member name="M:Steamworks.SteamUGC.QueryFileAsync(Steamworks.Data.PublishedFileId)"> + <summary> + Utility function to fetch a single item. Internally this uses Ugc.FileQuery - + which you can use to query multiple items if you need to. + </summary> + </member> + <member name="T:Steamworks.SteamUser"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the Steam client now has a working connection to the Steam servers. + Usually this will have occurred before the game has launched, and should only be seen if the + user has dropped connection due to a networking issue or a Steam server update. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServerConnectFailure"> + <summary> + Called when a connection attempt has failed. + This will occur periodically if the Steam client is not connected, + and has failed when retrying to establish a connection. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersDisconnected"> + <summary> + Called if the client has lost connection to the Steam servers. + Real-time services will be disabled until a matching OnSteamServersConnected has been posted. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnClientGameServerDeny"> + <summary> + Sent by the Steam server to the client telling it to disconnect from the specified game server, + which it may be in the process of or already connected to. + The game client should immediately disconnect upon receiving this message. + This can usually occur if the user doesn't have rights to play on the game server. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnLicensesUpdated"> + <summary> + Called whenever the users licenses (owned packages) changes. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnValidateAuthTicketResponse"> + <summary> + Called when an auth ticket has been validated. + The first parameter is the steamid of this user + The second is the Steam ID that owns the game, this will be different from the first + if the game is being borrowed via Steam Family Sharing + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGetAuthSessionTicketResponse"> + <summary> + Used internally for GetAuthSessionTicketAsync + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnMicroTxnAuthorizationResponse"> + <summary> + Called when a user has responded to a microtransaction authorization request. + ( appid, orderid, user authorized ) + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGameWebCallback"> + <summary> + Sent to your game in response to a steam://gamewebcallback/ command from a user clicking a link in the Steam overlay browser. + You can use this to add support for external site signups where you want to pop back into the browser after some web page + signup sequence, and optionally get back some detail about that. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnDurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, + half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.SteamUser.VoiceRecord"> + <summary> + Starts/Stops voice recording. + Once started, use GetAvailableVoice and GetVoice to get the data, and then call StopVoiceRecording + when the user has released their push-to-talk hotkey or the game session has completed. + </summary> + </member> + <member name="P:Steamworks.SteamUser.HasVoiceData"> + <summary> + Returns true if we have voice data waiting to be read + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceData(System.IO.Stream)"> + <summary> + Reads the voice data and returns the number of bytes written. + The compressed data can be transmitted by your application and decoded back into raw audio data using + DecompressVoice on the other side. The compressed data provided is in an arbitrary format and is not meant to be played directly. + This should be called once per frame, and at worst no more than four times a second to keep the microphone input delay as low as + possible. Calling this any less may result in gaps in the returned stream. + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceDataBytes"> + <summary> + Reads the voice data and returns the bytes. You should obviously ideally be using + ReadVoiceData because it won't be creating a new byte array every call. But this + makes it easier to get it working, so let the babies have their bottle. + </summary> + </member> + <member name="M:Steamworks.SteamUser.DecompressVoice(System.IO.Stream,System.Int32,System.IO.Stream)"> + <summary> + Decodes the compressed voice data returned by GetVoice. + The output data is raw single-channel 16-bit PCM audio.The decoder supports any sample rate from 11025 to 48000. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicket"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicketAsync(System.Double)"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + This waits for a positive response from the backend before returning the ticket. This means + the ticket is definitely ready to go as soon as it returns. Will return null if the callback + times out or returns negatively. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsBehindNAT"> + <summary> + Checks if the current users looks like they are behind a NAT device. + This is only valid if the user is connected to the Steam servers and may not catch all forms of NAT. + </summary> + </member> + <member name="P:Steamworks.SteamUser.SteamLevel"> + <summary> + Gets the Steam level of the user, as shown on their Steam community profile. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetStoreAuthUrlAsync(System.String)"> + <summary> + Requests a URL which authenticates an in-game browser for store check-out, and then redirects to the specified URL. + As long as the in-game browser accepts and handles session cookies, Steam microtransaction checkout pages will automatically recognize the user instead of presenting a login page. + NOTE: The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. + NOTE: The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneVerified"> + <summary> + Checks whether the current user has verified their phone number. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsTwoFactorEnabled"> + <summary> + Checks whether the current user has Steam Guard two factor authentication enabled on their account. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneIdentifying"> + <summary> + Checks whether the user's phone number is used to uniquely identify them. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneRequiringVerification"> + <summary> + Checks whether the current user's phone number is awaiting (re)verification. + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync(System.Byte[])"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + If you get a null result from this it's probably because you're calling it too often. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetDurationControl"> + <summary> + Get anti indulgence / duration control + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementIconFetched"> + <summary> + called when the achivement icon is loaded + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsReceived"> + <summary> + called when the latests stats and achievements have been received + from the server + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsStored"> + <summary> + result of a request to store the user stats for a game + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementProgress"> + <summary> + result of a request to store the achievements for a game, or an + "indicate progress" call. If both m_nCurProgress and m_nMaxProgress + are zero, that means the achievement has been fully unlocked + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsUnloaded"> + <summary> + Callback indicating that a user's stats have been unloaded + </summary> + </member> + <member name="P:Steamworks.SteamUserStats.Achievements"> + <summary> + Get the available achievements + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.IndicateAchievementProgress(System.String,System.Int32,System.Int32)"> + <summary> + Show the user a pop-up notification with the current progress toward an achievement. + Will return false if RequestCurrentStats has not completed and successfully returned + its callback, if the achievement doesn't exist/has unpublished changes in the app's + Steamworks Admin page, or if the achievement is unlocked. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.PlayerCountAsync"> + <summary> + Tries to get the number of players currently playing this game. + Or -1 if failed. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.StoreStats"> + <summary> + Send the changed stats and achievements data to the server for permanent storage. + If this fails then nothing is sent to the server. It's advisable to keep trying until the call is successful. + This call can be rate limited. Call frequency should be on the order of minutes, rather than seconds.You should only be calling this during major state changes such as the end of a round, the map changing, or the user leaving a server. This call is required to display the achievement unlock notification dialog though, so if you have called SetAchievement then it's advisable to call this soon after that. + If you have stats or achievements that you have saved locally but haven't uploaded with this function when your application process ends then this function will automatically be called. + You can find additional debug information written to the %steam_install%\logs\stats_log.txt file. + This function returns true upon success if : + RequestCurrentStats has completed and successfully returned its callback AND + the current game has stats associated with it in the Steamworks Partner backend, and those stats are published. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestCurrentStats"> + <summary> + Asynchronously request the user's current stats and achievements from the server. + You must always call this first to get the initial status of stats and achievements. + Only after the resulting callback comes back can you start calling the rest of the stats + and achievement functions for the current user. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestGlobalStatsAsync(System.Int32)"> + <summary> + Asynchronously fetches global stats data, which is available for stats marked as + "aggregated" in the App Admin panel of the Steamworks website. + You must have called RequestCurrentStats and it needs to return successfully via + its callback prior to calling this. + </summary> + <param name="days">How many days of day-by-day history to retrieve in addition to the overall totals. The limit is 60.</param> + <returns>OK indicates success, InvalidState means you need to call RequestCurrentStats first, Fail means the remote call failed</returns> + </member> + <member name="M:Steamworks.SteamUserStats.FindOrCreateLeaderboardAsync(System.String,Steamworks.Data.LeaderboardSort,Steamworks.Data.LeaderboardDisplay)"> + <summary> + Gets a leaderboard by name, it will create it if it's not yet created. + Leaderboards created with this function will not automatically show up in the Steam Community. + You must manually set the Community Name field in the App Admin panel of the Steamworks website. + As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on + the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of + dynamically created leaderboards. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Int32)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Single)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Int32)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Single)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatInt(System.String)"> + <summary> + Get a Int stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatFloat(System.String)"> + <summary> + Get a float stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.ResetAll(System.Boolean)"> + <summary> + Practically wipes the slate clean for this user. If includeAchievements is true, will wipe + any achievements too. + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamUtils"> + <summary> + Interface which provides access to a range of miscellaneous utility functions + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnIpCountryChanged"> + <summary> + The country of the user changed + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnLowBatteryPower"> + <summary> + Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute + The parameter is the number of minutes left + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnSteamShutdown"> + <summary> + Called when Steam wants to shutdown + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnGamepadTextInputDismissed"> + <summary> + Big Picture gamepad text input has been closed. Parameter is true if text was submitted, false if cancelled etc. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceAppActive"> + <summary> + Returns the number of seconds since the application was active + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceComputerActive"> + <summary> + Returns the number of seconds since the user last moved the mouse etc + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamServerTime"> + <summary> + Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IpCountry"> + <summary> + returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + e.g "US" or "UK". + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImageSize(System.Int32,System.UInt32@,System.UInt32@)"> + <summary> + returns true if the image exists, and the buffer was successfully filled out + results are returned in RGBA format + the destination buffer size should be 4 * height * width * sizeof(char) + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImage(System.Int32)"> + <summary> + returns the image in RGBA format + </summary> + </member> + <member name="P:Steamworks.SteamUtils.UsingBatteryPower"> + <summary> + Returns true if we're using a battery (ie, a laptop not plugged in) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.CurrentBatteryPower"> + <summary> + Returns battery power [0-1] + </summary> + </member> + <member name="P:Steamworks.SteamUtils.OverlayNotificationPosition"> + <summary> + Sets the position where the overlay instance for the currently calling game should show notifications. + This position is per-game and if this function is called from outside of a game context it will do nothing. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsOverlayEnabled"> + <summary> + Returns true if the overlay is running and the user can access it. The overlay process could take a few seconds to + start and hook the game process, so this function will initially return false while the overlay is loading. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.DoesOverlayNeedPresent"> + <summary> + Normally this call is unneeded if your game has a constantly running frame loop that calls the + D3D Present API, or OGL SwapBuffers API every frame. + + However, if you have a game that only refreshes the screen on an event driven basis then that can break + the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + need to Present() to the screen any time an even needing a notification happens or when the overlay is + brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.CheckFileSignatureAsync(System.String)"> + <summary> + Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + of the partner site, for example to refuse to load modified executable files. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.ShowGamepadTextInput(Steamworks.GamepadTextInputMode,Steamworks.GamepadTextInputLineMode,System.String,System.Int32,System.String)"> + <summary> + Activates the Big Picture text input dialog which only supports gamepad input + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetEnteredGamepadText"> + <summary> + Returns previously entered text + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamUILanguage"> + <summary> + returns the language the steam client is running in, you probably want + Apps.CurrentGameLanguage instead, this is for very special usage cases + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamRunningInVR"> + <summary> + returns true if Steam itself is running in VR mode + </summary> + </member> + <member name="M:Steamworks.SteamUtils.SetOverlayNotificationInset(System.Int32,System.Int32)"> + <summary> + Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamInBigPictureMode"> + <summary> + returns true if Steam and the Steam Overlay are running in Big Picture mode + Games much be launched through the Steam client to enable the Big Picture overlay. During development, + a game can be added as a non-steam game to the developers library to test this feature + </summary> + </member> + <member name="M:Steamworks.SteamUtils.StartVRDashboard"> + <summary> + ask SteamUI to create and render its OpenVR dashboard + </summary> + </member> + <member name="P:Steamworks.SteamUtils.VrHeadsetStreaming"> + <summary> + Set whether the HMD content will be streamed via Steam In-Home Streaming + If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + (this is useful for games that have asymmetric multiplayer gameplay) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamChinaLauncher"> + <summary> + Returns whether this steam client is a Steam China specific client, vs the global client + </summary> + </member> + <member name="T:Steamworks.SteamVideo"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="P:Steamworks.SteamVideo.IsBroadcasting"> + <summary> + Return true if currently using Steam's live broadcasting + </summary> + </member> + <member name="P:Steamworks.SteamVideo.NumViewers"> + <summary> + If we're broadcasting, will return the number of live viewers + </summary> + </member> + <member name="P:Steamworks.Controller.ActionSet"> + <summary> + Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + our state loops, instead of trying to place it in all of your state transitions. + </summary> + </member> + <member name="M:Steamworks.Controller.GetDigitalState(System.String)"> + <summary> + Returns the current state of the supplied digital game action + </summary> + </member> + <member name="M:Steamworks.Controller.GetAnalogState(System.String)"> + <summary> + Returns the current state of these supplied analog game action + </summary> + </member> + <member name="P:Steamworks.Friend.IsMe"> + <summary> + Returns true if this is the local user + </summary> + </member> + <member name="P:Steamworks.Friend.IsFriend"> + <summary> + Return true if this is a friend + </summary> + </member> + <member name="P:Steamworks.Friend.IsBlocked"> + <summary> + Returns true if you have this user blocked + </summary> + </member> + <member name="P:Steamworks.Friend.IsPlayingThisGame"> + <summary> + Return true if this user is playing the game we're running + </summary> + </member> + <member name="P:Steamworks.Friend.IsOnline"> + <summary> + Returns true if this friend is online + </summary> + </member> + <member name="M:Steamworks.Friend.RequestInfoAsync"> + <summary> + Sometimes we don't know the user's name. This will wait until we have + downloaded the information on this user. + </summary> + </member> + <member name="P:Steamworks.Friend.IsAway"> + <summary> + Returns true if this friend is marked as away + </summary> + </member> + <member name="P:Steamworks.Friend.IsBusy"> + <summary> + Returns true if this friend is marked as busy + </summary> + </member> + <member name="P:Steamworks.Friend.IsSnoozing"> + <summary> + Returns true if this friend is marked as snoozing + </summary> + </member> + <member name="M:Steamworks.Friend.InviteToGame(System.String)"> + <summary> + Invite this friend to the game that we are playing + </summary> + </member> + <member name="M:Steamworks.Friend.SendMessage(System.String)"> + <summary> + Sends a message to a Steam friend. Returns true if success + </summary> + </member> + <member name="M:Steamworks.Friend.RequestUserStatsAsync"> + <summary> + Tries to get download the latest user stats + </summary> + <returns>True if successful, False if failure</returns> + </member> + <member name="M:Steamworks.Friend.GetStatFloat(System.String,System.Single)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetStatInt(System.String,System.Int32)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievement(System.String,System.Boolean)"> + <summary> + Gets a user achievement state. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievementUnlockTime(System.String)"> + <summary> + Gets a the time this achievement was unlocked. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <returns>The time unlocked. If it wasn't unlocked, or you haven't downloaded the stats yet - will return DateTime.MinValue</returns> + </member> + <member name="P:Steamworks.InventoryDef.Name"> + <summary> + Shortcut to call GetProperty( "name" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Description"> + <summary> + Shortcut to call GetProperty( "description" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrl"> + <summary> + Shortcut to call GetProperty( "icon_url" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrlLarge"> + <summary> + Shortcut to call GetProperty( "icon_url_large" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.PriceCategory"> + <summary> + Shortcut to call GetProperty( "price_category" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Type"> + <summary> + Shortcut to call GetProperty( "type" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IsGenerator"> + <summary> + Returns true if this is an item that generates an item, rather + than something that is actual an item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.ExchangeSchema"> + <summary> + Shortcut to call GetProperty( "exchange" ) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipes"> + <summary> + Get a list of exchanges that are available to make this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Marketable"> + <summary> + Shortcut to call GetBoolProperty( "marketable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Tradable"> + <summary> + Shortcut to call GetBoolProperty( "tradable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Created"> + <summary> + Gets the property timestamp + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Modified"> + <summary> + Gets the property modified + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty(System.String)"> + <summary> + Get a specific property by name + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetBoolProperty(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty``1(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Properties"> + <summary> + Gets a list of all properties on this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalPrice"> + <summary> + Returns the price of this item in the local currency (SteamInventory.Currency) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalBasePrice"> + <summary> + If the price has been discounted, LocalPrice will differ from LocalBasePrice + (assumed, this isn't documented) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipesContainingThis"> + <summary> + Return a list of recepies that contain this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Properties"> + <summary> + Only available if the result set was created with the getproperties + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsNoTrade"> + <summary> + This item is account-locked and cannot be traded or given away. + This is an item status flag which is permanently attached to specific item instances + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsRemoved"> + <summary> + The item has been destroyed, traded away, expired, or otherwise invalidated. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsConsumed"> + <summary> + The item quantity has been decreased by 1 via ConsumeItem API. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="M:Steamworks.InventoryItem.ConsumeAsync(System.Int32)"> + <summary> + Consumes items from a user's inventory. If the quantity of the given item goes to zero, it is permanently removed. + Once an item is removed it cannot be recovered.This is not for the faint of heart - if your game implements item removal at all, + a high-friction UI confirmation process is highly recommended.ConsumeItem can be restricted to certain item definitions or fully + blocked via the Steamworks website to minimize support/abuse issues such as the classic "my brother borrowed my laptop and deleted all of my rare items". + </summary> + </member> + <member name="M:Steamworks.InventoryItem.SplitStackAsync(System.Int32)"> + <summary> + Split stack into two items + </summary> + </member> + <member name="M:Steamworks.InventoryItem.AddAsync(Steamworks.InventoryItem,System.Int32)"> + <summary> + Add x units of the target item to this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Acquired"> + <summary> + Will try to return the date that this item was aquired. You need to have for the items + with their properties for this to work. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Origin"> + <summary> + Tries to get the origin property. Need properties for this to work. + Will return a string like "market" + </summary> + </member> + <member name="T:Steamworks.InventoryItem.Amount"> + <summary> + Small utility class to describe an item with a quantity + </summary> + </member> + <member name="T:Steamworks.InventoryRecipe"> + <summary> + A structured description of an item exchange + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.DefinitionId"> + <summary> + The definition ID of the ingredient. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Definition"> + <summary> + If we don't know about this item definition this might be null. + In which case, DefinitionId should still hold the correct id. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Count"> + <summary> + The amount of this item needed. Generally this will be 1. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Result"> + <summary> + The item that this will create. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredients"> + <summary> + The items, with quantity required to create this item. + </summary> + </member> + <member name="M:Steamworks.InventoryResult.BelongsTo(Steamworks.SteamId)"> + <summary> + Checks whether an inventory result handle belongs to the specified Steam ID. + This is important when using Deserialize, to verify that a remote player is not pretending to have a different user's inventory + </summary> + </member> + <member name="M:Steamworks.InventoryResult.Serialize"> + <summary> + Serialized result sets contain a short signature which can't be forged or replayed across different game sessions. + A result set can be serialized on the local client, transmitted to other players via your game networking, and + deserialized by the remote players.This is a secure way of preventing hackers from lying about posessing + rare/high-value items. Serializes a result set with signature bytes to an output buffer.The size of a serialized + result depends on the number items which are being serialized.When securely transmitting items to other players, + it is recommended to use GetItemsByID first to create a minimal result set. + Results have a built-in timestamp which will be considered "expired" after an hour has elapsed.See DeserializeResult + for expiration handling. + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.Owner"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.MetaData"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.JoinAsync"> + <summary> + Will attempt to join the party. If successful will return a connection string. + If failed, will return null + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.OnReservationCompleted(Steamworks.SteamId)"> + <summary> + When a user follows your beacon, Steam will reserve one of the open party slots for them, and send your game a ReservationNotification callback. + When that user joins your party, call OnReservationCompleted to notify Steam that the user has joined successfully + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.CancelReservation(Steamworks.SteamId)"> + <summary> + To cancel a reservation (due to timeout or user input), call this. + Steam will open a new reservation slot. + Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.Destroy"> + <summary> + Turn off the beacon + </summary> + </member> + <member name="T:Steamworks.SteamServerInit"> + <summary> + Used to set up the server. + The variables in here are all required to be set, and can't be changed once the server is created. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.VersionString"> + <summary> + The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. + If you go into the dedicated server tab on steamworks you'll be able to server the latest version. If this version number is + less than that latest version then your server won't show. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.ModDir"> + <summary> + This should be the same directory game where gets installed into. Just the folder name, not the whole path. I.e. "Rust", "Garrysmod". + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.GameDescription"> + <summary> + The game description. Setting this to the full name of your game is recommended. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.DedicatedServer"> + <summary> + Is a dedicated server + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithRandomSteamPort"> + <summary> + Set the Steam quert port + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithQueryShareGamePort"> + <summary> + If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE into usQueryPort, then it causes the game server API to use + "GameSocketShare" mode, which means that the game is responsible for sending and receiving UDP packets for the master + server updater. + + More info about this here: https://partner.steamgames.com/doc/api/ISteamGameServer#HandleIncomingPacket + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewCommunityFile"> + <summary> + Create a Normal Workshop item that can be subscribed to + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewMicrotransactionFile"> + <summary> + Workshop item that is meant to be voted on for the purpose of selling in-game + </summary> + </member> + <member name="F:Steamworks.Ugc.PublishResult.NeedsWorkshopAgreement"> + <summary> + https://partner.steamgames.com/doc/features/workshop/implementation#Legal + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Id"> + <summary> + The actual ID of this file + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Title"> + <summary> + The given title of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Description"> + <summary> + The description of this item, in your local language if available + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Tags"> + <summary> + A list of tags for this item, all lowercase + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CreatorApp"> + <summary> + App Id of the app that created this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ConsumerApp"> + <summary> + App Id of the app that will consume this item. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Owner"> + <summary> + User who created this content + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Score"> + <summary> + The bayesian average for up votes / total votes, between [0,1] + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Created"> + <summary> + Time when the published item was created + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Updated"> + <summary> + Time when the published item was last updated + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPublic"> + <summary> + True if this is publically visible + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsFriendsOnly"> + <summary> + True if this item is only visible by friends of the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPrivate"> + <summary> + True if this is only visible to the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsBanned"> + <summary> + True if this item has been banned + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsAcceptedForUse"> + <summary> + Whether the developer of this app has specifically flagged this item as accepted in the Workshop + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesUp"> + <summary> + The number of upvotes of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesDown"> + <summary> + The number of downvotes of this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Download(System.Boolean)"> + <summary> + Start downloading this item. + If this returns false the item isn't getting downloaded. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesTotal"> + <summary> + If we're downloading, how big the total download is + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesDownloaded"> + <summary> + If we're downloading, how much we've downloaded + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.SizeBytes"> + <summary> + If we're installed, how big is the install + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadAmount"> + <summary> + If we're downloading our current progress as a delta betwen 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.HasTag(System.String)"> + <summary> + A case insensitive check for tag + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Subscribe"> + <summary> + Allows the user to subscribe to this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.DownloadAsync(System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Allows the user to subscribe to download this item asyncronously + If CancellationToken is default then there is 60 seconds timeout + Progress will be set to 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Unsubscribe"> + <summary> + Allows the user to unsubscribe from this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.AddFavorite"> + <summary> + Adds item to user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.RemoveFavorite"> + <summary> + Removes item from user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Vote(System.Boolean)"> + <summary> + Allows the user to rate a workshop item up or down. + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.GetUserVote"> + <summary> + Gets the current users vote on the item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Url"> + <summary> + Return a URL to view this item online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ChangelogUrl"> + <summary> + The URl to view this item's changelog + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CommentsUrl"> + <summary> + The URL to view the comments on this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DiscussUrl"> + <summary> + The URL to discuss this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.StatsUrl"> + <summary> + The URL to view this items stats online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.PreviewImageUrl"> + <summary> + The URL to the preview image for this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Edit"> + <summary> + Edit this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAnyTag"> + <summary> + Found items must have at least one of the defined tags + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAllTags"> + <summary> + Found items must have all defined tags + </summary> + </member> + <member name="P:Steamworks.Epoch.Current"> + <summary> + Returns the current Unix Epoch + </summary> + </member> + <member name="M:Steamworks.Epoch.ToDateTime(System.Decimal)"> + <summary> + Convert an epoch to a datetime + </summary> + </member> + <member name="M:Steamworks.Epoch.FromDateTime(System.DateTime)"> + <summary> + Convert a DateTime to a unix time + </summary> + </member> + <member name="M:Steamworks.Helpers.TakeBuffer(System.Int32)"> + <summary> + Returns a buffer. This will get returned and reused later on. + </summary> + </member> + <member name="T:Steamworks.PreserveAttribute"> + <summary> + Prevent unity from stripping shit we depend on + https://docs.unity3d.com/Manual/ManagedCodeStripping.html + </summary> + </member> + </members> +</doc> diff --git a/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win64.deps.json b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win64.deps.json new file mode 100644 index 0000000..d568506 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win64.deps.json @@ -0,0 +1,47 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "Facepunch.Steamworks.Win64/1.0.0": { + "dependencies": { + "NETStandard.Library": "2.0.3" + }, + "runtime": { + "Facepunch.Steamworks.Win64.dll": {} + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + } + } + }, + "libraries": { + "Facepunch.Steamworks.Win64/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + } + } +}
\ No newline at end of file diff --git a/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win64.dll b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win64.dll Binary files differnew file mode 100644 index 0000000..ba7e2b0 --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win64.dll diff --git a/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win64.pdb b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win64.pdb Binary files differnew file mode 100644 index 0000000..757d35f --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win64.pdb diff --git a/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win64.xml b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win64.xml new file mode 100644 index 0000000..b6836cb --- /dev/null +++ b/Tools/Facepunch.Steamworks.2.3.2/netstandard2.0/Facepunch.Steamworks.Win64.xml @@ -0,0 +1,3474 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Facepunch.Steamworks.Win64</name> + </assembly> + <members> + <member name="T:Steamworks.CallResult`1"> + <summary> + An awaitable version of a SteamAPICall_t + </summary> + </member> + <member name="M:Steamworks.CallResult`1.OnCompleted(System.Action)"> + <summary> + This gets called if IsComplete returned false on the first call. + The Action "continues" the async call. We pass it to the Dispatch + to be called when the callback returns. + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetResult"> + <summary> + Gets the result. This is called internally by the async shit. + </summary> + </member> + <member name="P:Steamworks.CallResult`1.IsCompleted"> + <summary> + Return true if complete or failed + </summary> + </member> + <member name="M:Steamworks.CallResult`1.GetAwaiter"> + <summary> + This is what makes this struct awaitable + </summary> + </member> + <member name="T:Steamworks.ICallbackData"> + <summary> + Gives us a generic way to get the CallbackId of structs + </summary> + </member> + <member name="M:Steamworks.AuthTicket.Cancel"> + <summary> + Cancels a ticket. + You should cancel your ticket when you close the game or leave a server. + </summary> + </member> + <member name="T:Steamworks.Dispatch"> + <summary> + Responsible for all callback/callresult handling + + This manually pumps Steam's message queue and dispatches those + events to any waiting callbacks/callresults. + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnDebugCallback"> + <summary> + If set then we'll call this function every time a callback is generated. + + This is SLOW!! - it's for debugging - don't keep it on all the time. If you want to access a specific + callback then please create an issue on github and I'll add it! + + Params are : [Callback Type] [Callback Contents] [server] + + </summary> + </member> + <member name="F:Steamworks.Dispatch.OnException"> + <summary> + Called if an exception happens during a callback/callresult. + This is needed because the exception isn't always accessible when running + async.. and can fail silently. With this hooked you won't be stuck wondering + what happened. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Init"> + <summary> + This gets called from Client/Server Init + It's important to switch to the manual dispatcher + </summary> + </member> + <member name="F:Steamworks.Dispatch.runningFrame"> + <summary> + Make sure we don't call Frame in a callback - because that'll cause some issues for everyone. + </summary> + </member> + <member name="M:Steamworks.Dispatch.Frame(Steamworks.Data.HSteamPipe)"> + <summary> + Calls RunFrame and processes events from this Steam Pipe + </summary> + </member> + <member name="F:Steamworks.Dispatch.actionsToCall"> + <summary> + To be safe we don't call the continuation functions while iterating + the Callback list. This is maybe overly safe because the only way this + could be an issue is if the callback list is modified in the continuation + which would only happen if starting or shutting down in the callback. + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessCallback(Steamworks.Dispatch.CallbackMsg_t,System.Boolean)"> + <summary> + A callback is a general global message + </summary> + </member> + <member name="M:Steamworks.Dispatch.CallbackToString(Steamworks.CallbackType,System.IntPtr,System.Int32)"> + <summary> + Given a callback, try to turn it into a string + </summary> + </member> + <member name="M:Steamworks.Dispatch.ProcessResult(Steamworks.Dispatch.CallbackMsg_t)"> + <summary> + A result is a reply to a specific command + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopClientAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.LoopServerAsync"> + <summary> + Pumps the queue in an async loop so we don't + have to think about it. This has the advantage that + you can call .Wait() on async shit and it still works. + </summary> + </member> + <member name="M:Steamworks.Dispatch.OnCallComplete``1(Steamworks.Data.SteamAPICall_t,System.Action,System.Boolean)"> + <summary> + Watch for a steam api call + </summary> + </member> + <member name="M:Steamworks.Dispatch.Install``1(System.Action{``0},System.Boolean)"> + <summary> + Install a global callback. The passed function will get called if it's all good. + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.Numeric"> + <summary> + The score is just a simple numerical value + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeSeconds"> + <summary> + The score represents a time, in seconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardDisplay.TimeMilliSeconds"> + <summary> + The score represents a time, in milliseconds + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Ascending"> + <summary> + The top-score is the lowest number + </summary> + </member> + <member name="F:Steamworks.Data.LeaderboardSort.Descending"> + <summary> + The top-score is the highest number + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Unreliable"> + <summary> + Send the message unreliably. Can be lost. Messages *can* be larger than a + single MTU (UDP packet), but there is no retransmission, so if any piece + of the message is lost, the entire message will be dropped. + + The sending API does have some knowledge of the underlying connection, so + if there is no NAT-traversal accomplished or there is a recognized adjustment + happening on the connection, the packet will be batched until the connection + is open again. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoNagle"> + <summary> + Disable Nagle's algorithm. + By default, Nagle's algorithm is applied to all outbound messages. This means + that the message will NOT be sent immediately, in case further messages are + sent soon after you send this, which can be grouped together. Any time there + is enough buffered data to fill a packet, the packets will be pushed out immediately, + but partially-full packets not be sent until the Nagle timer expires. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.NoDelay"> + <summary> + If the message cannot be sent very soon (because the connection is still doing some initial + handshaking, route negotiations, etc), then just drop it. This is only applicable for unreliable + messages. Using this flag on reliable messages is invalid. + </summary> + </member> + <member name="F:Steamworks.Data.SendType.Reliable"> + Reliable message send. Can send up to 0.5mb in a single message. + Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for + efficient sends of large chunks of data. + </member> + <member name="P:Steamworks.Data.NetIdentity.LocalHost"> + <summary> + Return a NetIdentity that represents LocalHost + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.IsLocalHost"> + <summary> + Return true if this identity is localhost + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.SteamId)~Steamworks.Data.NetIdentity"> + <summary> + Convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetAddress)~Steamworks.Data.NetIdentity"> + <summary> + Set the specified Address + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.op_Implicit(Steamworks.Data.NetIdentity)~Steamworks.SteamId"> + <summary> + Automatically convert to a SteamId + </summary> + <param name="value"></param> + </member> + <member name="P:Steamworks.Data.NetIdentity.SteamId"> + <summary> + Returns NULL if we're not a SteamId + </summary> + </member> + <member name="P:Steamworks.Data.NetIdentity.Address"> + <summary> + Returns NULL if we're not a NetAddress + </summary> + </member> + <member name="M:Steamworks.Data.NetIdentity.ToString"> + <summary> + We override tostring to provide a sensible representation + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Port"> + <summary> + The Port. This is redundant documentation. + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.AnyIp(System.UInt16)"> + <summary> + Any IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.LocalHost(System.UInt16)"> + <summary> + Localhost IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.String,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="M:Steamworks.Data.NetAddress.From(System.Net.IPAddress,System.UInt16)"> + <summary> + Specific IP, specific port + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Cleared"> + <summary> + Set everything to zero + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv6AllZeros"> + <summary> + Return true if the IP is ::0. (Doesn't check port.) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsIPv4"> + <summary> + Return true if IP is mapped IPv4 + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.IsLocalHost"> + <summary> + Return true if this identity is localhost. (Either IPv6 ::1, or IPv4 127.0.0.1) + </summary> + </member> + <member name="P:Steamworks.Data.NetAddress.Address"> + <summary> + Get the Address section + </summary> + </member> + <member name="T:Steamworks.Data.Connection"> + <summary> + Used as a base to create your client connection. This creates a socket + to a single connection. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Accept"> + <summary> + Accept an incoming connection that has been received on a listen socket. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Close(System.Boolean,System.Int32,System.String)"> + <summary> + Disconnects from the remote host and invalidates the connection handle. Any unread data on the connection is discarded.. + reasonCode is defined and used by you. + </summary> + </member> + <member name="P:Steamworks.Data.Connection.UserData"> + <summary> + Get/Set connection user data + </summary> + </member> + <member name="P:Steamworks.Data.Connection.ConnectionName"> + <summary> + A name for the connection, used mostly for debugging + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.IntPtr,System.Int32,Steamworks.Data.SendType)"> + <summary> + This is the best version to use. + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.Byte[],System.Int32,System.Int32,Steamworks.Data.SendType)"> + <summary> + Ideally should be using an IntPtr version unless you're being really careful with the byte[] array and + you're not creating a new one every frame (like using .ToArray()) + </summary> + </member> + <member name="M:Steamworks.Data.Connection.SendMessage(System.String,Steamworks.Data.SendType)"> + <summary> + This creates a ton of garbage - so don't do anything with this beyond testing! + </summary> + </member> + <member name="M:Steamworks.Data.Connection.Flush"> + <summary> + Flush any messages waiting on the Nagle timer and send them at the next transmission + opportunity (often that means right now). + </summary> + </member> + <member name="M:Steamworks.Data.Connection.DetailedStatus"> + <summary> + Returns detailed connection stats in text format. Useful + for dumping to a log, etc. + </summary> + <returns>Plain text connection info</returns> + </member> + <member name="T:Steamworks.Data.ConnectionInfo"> + <summary> + Describe the state of a connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.State"> + <summary> + High level state of the connection + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Address"> + <summary> + Remote address. Might be all 0's if we don't know it, or if this is N/A. + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.Identity"> + <summary> + Who is on the other end? Depending on the connection type and phase of the connection, we might not know + </summary> + </member> + <member name="P:Steamworks.Data.ConnectionInfo.EndReason"> + <summary> + Basic cause of the connection termination or problem. + </summary> + </member> + <member name="T:Steamworks.Data.NetPingLocation"> + <summary> + + Object that describes a "location" on the Internet with sufficient + detail that we can reasonably estimate an upper bound on the ping between + the two hosts, even if a direct route between the hosts is not possible, + and the connection must be routed through the Steam Datagram Relay network. + This does not contain any information that identifies the host. Indeed, + if two hosts are in the same building or otherwise have nearly identical + networking characteristics, then it's valid to use the same location + object for both of them. + + NOTE: This object should only be used in the same process! Do not serialize it, + send it over the wire, or persist it in a file or database! If you need + to do that, convert it to a string representation using the methods in + ISteamNetworkingUtils(). + + </summary> + </member> + <member name="M:Steamworks.Data.NetPingLocation.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + Estimate the round-trip latency between two arbitrary locations, in + milliseconds. This is a conservative estimate, based on routing through + the relay network. For most basic relayed connections, this ping time + will be pretty accurate, since it will be based on the route likely to + be actually used. + + If a direct IP route is used (perhaps via NAT traversal), then the route + will be different, and the ping time might be better. Or it might actually + be a bit worse! Standard IP routing is frequently suboptimal! + + But even in this case, the estimate obtained using this method is a + reasonable upper bound on the ping time. (Also it has the advantage + of returning immediately and not sending any packets.) + + In a few cases we might not able to estimate the route. In this case + a negative value is returned. k_nSteamNetworkingPing_Failed means + the reason was because of some networking difficulty. (Failure to + ping, etc) k_nSteamNetworkingPing_Unknown is returned if we cannot + currently answer the question for some other reason. + + Do you need to be able to do this from a backend/matchmaking server? + You are looking for the "ticketgen" library. + </member> + <member name="M:Steamworks.Data.Socket.Close"> + <summary> + Destroy a listen socket. All the connections that were accepting on the listen + socket are closed ungracefully. + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.State"> + <summary> + True if unlocked + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.UnlockTime"> + <summary> + Should hold the unlock time if State is true + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIcon"> + <summary> + Gets the icon of the achievement. This can return a null image even though the image exists if the image + hasn't been downloaded by Steam yet. You can use GetIconAsync if you want to wait for the image to be downloaded. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.GetIconAsync(System.Int32)"> + <summary> + Gets the icon of the achievement, waits for it to load if we have to + </summary> + </member> + <member name="P:Steamworks.Data.Achievement.GlobalUnlocked"> + <summary> + Returns the fraction (0-1) of users who have unlocked the specified achievement, or -1 if no data available. + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Trigger(System.Boolean)"> + <summary> + Make this achievement earned + </summary> + </member> + <member name="M:Steamworks.Data.Achievement.Clear"> + <summary> + Reset this achievement to not achieved + </summary> + </member> + <member name="T:Steamworks.Data.DurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Appid"> + <summary> + appid generating playtime + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Applicable"> + <summary> + is duration control applicable to user + game combination + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeInLastFiveHours"> + <summary> + playtime since most recent 5 hour gap in playtime, only counting up to regulatory limit of playtime, in seconds + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.PlaytimeToday"> + <summary> + playtime on current calendar day + </summary> + </member> + <member name="P:Steamworks.Data.DurationControl.Progress"> + <summary> + recommended progress + </summary> + </member> + <member name="P:Steamworks.Data.Leaderboard.Name"> + <summary> + the name of a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.ReplaceScore(System.Int32,System.Int32[])"> + <summary> + Submit your score and replace your old score even if it was better + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.SubmitScoreAsync(System.Int32,System.Int32[])"> + <summary> + Submit your new score, but won't replace your high score if it's lower + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.AttachUgc(Steamworks.Data.Ugc)"> + <summary> + Attaches a piece of user generated content the user's entry on a leaderboard + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAsync(System.Int32,System.Int32)"> + <summary> + Used to query for a sequential range of leaderboard entries by leaderboard Sort. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresAroundUserAsync(System.Int32,System.Int32)"> + <summary> + Used to retrieve leaderboard entries relative a user's entry. If there are not enough entries in the leaderboard + before or after the user's entry, Steam will adjust the range to try to return the number of entries requested. + For example, if the user is #1 on the leaderboard and start is set to -2, end is set to 2, Steam will return the first + 5 entries in the leaderboard. If The current user has no entry, this will return null. + </summary> + </member> + <member name="M:Steamworks.Data.Leaderboard.GetScoresFromFriendsAsync"> + <summary> + Used to retrieve all leaderboard entries for friends of the current user + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Join"> + <summary> + Try to join this room. Will return RoomEnter.Success on success, + and anything else is a failure + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Leave"> + <summary> + Leave a lobby; this will take effect immediately on the client side + other users in the lobby will be notified by a LobbyChatUpdate_t callback + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.InviteFriend(Steamworks.SteamId)"> + <summary> + Invite another user to the lobby + will return true if the invite is successfully sent, whether or not the target responds + returns false if the local user is not connected to the Steam servers + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MemberCount"> + <summary> + returns the number of users in the specified lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Members"> + <summary> + Returns current members. Need to be in the lobby to see the users. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetData(System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetData(System.String,System.String)"> + <summary> + Get data associated with this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.DeleteData(System.String)"> + <summary> + Removes a metadata key from the lobby + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Data"> + <summary> + Get all data for this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetMemberData(Steamworks.Friend,System.String)"> + <summary> + Gets per-user metadata for someone in this lobby + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetMemberData(System.String,System.String)"> + <summary> + Sets per-user metadata (for the local user implicitly) + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatString(System.String)"> + <summary> + Sends a string to the chat room + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SendChatBytes(System.Byte[])"> + <summary> + Sends bytes the the chat room + this isn't exposed because there's no way to read raw bytes atm, + and I figure people can send json if they want something more advanced + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.Refresh"> + <summary> + Refreshes metadata for a lobby you're not necessarily in right now + you never do this for lobbies you're a member of, only if your + this will send down all the metadata associated with a lobby + this is an asynchronous call + returns false if the local user is not connected to the Steam servers + results will be returned by a LobbyDataUpdate_t callback + if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.MaxMembers"> + <summary> + Max members able to join this lobby. Cannot be over 250. + Can only be set by the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(Steamworks.SteamId)"> + <summary> + [SteamID variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.SetGameServer(System.String,System.UInt16)"> + <summary> + [IP/Port variant] + Allows the owner to set the game server associated with the lobby. Triggers the + Steammatchmaking.OnLobbyGameCreated event. + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.GetGameServer(System.UInt32@,System.UInt16@,Steamworks.SteamId@)"> + <summary> + Gets the details of the lobby's game server, if set. Returns true if the lobby is + valid and has a server set, otherwise returns false. + </summary> + </member> + <member name="P:Steamworks.Data.Lobby.Owner"> + <summary> + You must be the lobby owner to set the owner + </summary> + </member> + <member name="M:Steamworks.Data.Lobby.IsOwnedBy(Steamworks.SteamId)"> + <summary> + Check if the specified SteamId owns the lobby + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceClose"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceFar"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.FilterDistanceWorldwide"> + <summary> + only lobbies in the same immediate region will be returned + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithKeyValue(System.String,System.String)"> + <summary> + Filter by specified key/value pair; string parameters + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithLower(System.String,System.Int32)"> + <summary> + Numerical filter where value is less than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithHigher(System.String,System.Int32)"> + <summary> + Numerical filter where value is greater than the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must be equal to the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithNotEqual(System.String,System.Int32)"> + <summary> + Numerical filter where value must not equal the value provided + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.AddNumericalFilter(System.String,System.Int32,Steamworks.LobbyComparison)"> + <summary> + Test key, initialize numerical filter list if necessary, then add new numerical filter + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.OrderByNear(System.String,System.Int32)"> + <summary> + Order filtered results according to key/values nearest the provided key/value pair. + Can specify multiple near value filters; each successive filter is lower priority than the previous. + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithSlotsAvailable(System.Int32)"> + <summary> + returns only lobbies with the specified number of slots available + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.WithMaxResults(System.Int32)"> + <summary> + sets how many results to return, the lower the count the faster it is to download the lobby results + </summary> + </member> + <member name="M:Steamworks.Data.LobbyQuery.RequestAsync"> + <summary> + Run the query, get the matching lobbies + </summary> + </member> + <member name="T:Steamworks.Data.OutgoingPacket"> + <summary> + A server query packet. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Address"> + <summary> + Target IP address + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Port"> + <summary> + Target port + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Data"> + <summary> + This data is pooled. Make a copy if you don't use it immediately. + This buffer is also quite large - so pay attention to Size. + </summary> + </member> + <member name="P:Steamworks.Data.OutgoingPacket.Size"> + <summary> + Size of the data + </summary> + </member> + <member name="T:Steamworks.Data.RemotePlaySession"> + <summary> + Represents a RemotePlaySession from the SteamRemotePlay interface + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.IsValid"> + <summary> + Returns true if this session was valid when created. This will stay true even + after disconnection - so be sure to watch SteamRemotePlay.OnSessionDisconnected + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.SteamId"> + <summary> + Get the SteamID of the connected user + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.ClientName"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="P:Steamworks.Data.RemotePlaySession.FormFactor"> + <summary> + Get the name of the session client device + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagUser(Steamworks.SteamId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.SetLocation(System.String)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="M:Steamworks.Data.Screenshot.TagPublishedFile(Steamworks.Data.PublishedFileId)"> + <summary> + Tags a user as being visible in the screenshot + </summary> + </member> + <member name="P:Steamworks.Data.ServerInfo.Tags"> + <summary> + Gets the individual tags for this server + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToHistory"> + <summary> + Add this server to our history list + If we're already in the history list, weill set the last played time to now + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.QueryRulesAsync"> + <summary> + If this server responds to source engine style queries, we'll be able to get a list of rules here + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromHistory"> + <summary> + Remove this server from our history list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.AddToFavourites"> + <summary> + Add this server to our favourite list + </summary> + </member> + <member name="M:Steamworks.Data.ServerInfo.RemoveFromFavourites"> + <summary> + Remove this server from our favourite list + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultStatus(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Find out the status of an asynchronous inventory result handle. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultItems(Steamworks.Data.SteamInventoryResult_t,Steamworks.Data.SteamItemDetails_t[],System.UInt32@)"> + <summary> + Copies the contents of a result set into a flat array. The specific contents of the result set depend on which query which was used. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetResultTimestamp(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Returns the server time at which the result was generated. Compare against the value of IClientUtils::GetServerRealTime() to determine age. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.CheckResultSteamID(Steamworks.Data.SteamInventoryResult_t,Steamworks.SteamId)"> + <summary> + Returns true if the result belongs to the target steam ID or false if the result does not. This is important when using DeserializeResult to verify that a remote player is not pretending to have a different users inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.DestroyResult(Steamworks.Data.SteamInventoryResult_t)"> + <summary> + Destroys a result handle and frees all associated memory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetAllItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + Captures the entire state of the current users Steam inventory. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GetItemsByID(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId@,System.UInt32)"> + <summary> + Captures the state of a subset of the current users Steam inventory identified by an array of item instance IDs. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.GrantPromoItems(Steamworks.Data.SteamInventoryResult_t@)"> + <summary> + GrantPromoItems() checks the list of promotional items for which the user may be eligible and grants the items (one time only). + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.ConsumeItem(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryItemId,System.UInt32)"> + <summary> + ConsumeItem() removes items from the inventory permanently. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.SendItemDropHeartbeat"> + <summary> + Deprecated method. Playtime accounting is performed on the Steam servers. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.TriggerItemDrop(Steamworks.Data.SteamInventoryResult_t@,Steamworks.Data.InventoryDefId)"> + <summary> + Playtime credit must be consumed and turned into item drops by your game. + </summary> + </member> + <member name="M:Steamworks.ISteamInventory.LoadItemDefinitions"> + <summary> + LoadItemDefinitions triggers the automatic load and refresh of item definitions. + </summary> + </member> + <member name="M:Steamworks.ISteamUserStats.DownloadLeaderboardEntriesForUsers(Steamworks.Data.SteamLeaderboard_t,Steamworks.SteamId[],System.Int32)"> + <summary> + Downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.Interface"> + <summary> + An optional interface to use instead of deriving + </summary> + </member> + <member name="F:Steamworks.ConnectionManager.Connection"> + <summary> + The actual connection we're managing + </summary> + </member> + <member name="P:Steamworks.ConnectionManager.ConnectionInfo"> + <summary> + The last received ConnectionInfo + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We're trying to connect! + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.ConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnecting(Steamworks.Data.ConnectionInfo)"> + <summary> + We started connecting to this guy + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnConnected(Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnDisconnected(Steamworks.Data.ConnectionInfo)"> + <summary> + We got disconnected + </summary> + </member> + <member name="M:Steamworks.IConnectionManager.OnMessage(System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Must call Accept or Close on the connection within a second or so + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection is fully connected and can start being communicated with + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Called when the connection leaves + </summary> + </member> + <member name="M:Steamworks.ISocketManager.OnMessage(Steamworks.Data.Connection,Steamworks.Data.NetIdentity,System.IntPtr,System.Int32,System.Int64,System.Int64,System.Int32)"> + <summary> + Received a message from a connection + </summary> + </member> + <member name="T:Steamworks.SocketManager"> + <summary> + Used as a base to create your networking server. This creates a socket + and listens/communicates with multiple queries. + + You can override all the virtual functions to turn it into what you + want it to do. + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnecting(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Default behaviour is to accept every connection + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnConnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + Client is connected. They move from connecting to Connections + </summary> + </member> + <member name="M:Steamworks.SocketManager.OnDisconnected(Steamworks.Data.Connection,Steamworks.Data.ConnectionInfo)"> + <summary> + The connection has been closed remotely or disconnected locally. Check data.State for details. + </summary> + </member> + <member name="P:Steamworks.ServerList.Base.AppId"> + <summary> + Which app we're querying. Defaults to the current app. + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnChanges"> + <summary> + When a new server is added, this function will get called + </summary> + </member> + <member name="E:Steamworks.ServerList.Base.OnResponsiveServer"> + <summary> + Called for every responsive server + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Responsive"> + <summary> + A list of servers that responded. If you're only interested in servers that responded since you + last updated, then simply clear this list. + </summary> + </member> + <member name="F:Steamworks.ServerList.Base.Unresponsive"> + <summary> + A list of servers that were in the master list but didn't respond. + </summary> + </member> + <member name="M:Steamworks.ServerList.Base.RunQueryAsync(System.Single)"> + <summary> + Query the server list. Task result will be true when finished + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamApps"> + <summary> + Exposes a wide range of information and actions for applications and Downloadable Content (DLC). + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnDlcInstalled"> + <summary> + posted after the user gains ownership of DLC and that DLC is installed + </summary> + </member> + <member name="E:Steamworks.SteamApps.OnNewLaunchParameters"> + <summary> + posted after the user gains executes a Steam URL with command line or query parameters + such as steam://run/appid//-commandline/?param1=value1(and)param2=value2(and)param3=value3 etc + while the game is already running. The new params can be queried + with GetLaunchQueryParam and GetLaunchCommandLine + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribed"> + <summary> + Checks if the active user is subscribed to the current App ID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFamilySharing"> + <summary> + Check if user borrowed this game via Family Sharing, If true, call GetAppOwner() to get the lender SteamID + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsLowVoilence"> + <summary> + Checks if the license owned by the user provides low violence depots. + Low violence depots are useful for copies sold in countries that have content restrictions + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsCybercafe"> + <summary> + Checks whether the current App ID license is for Cyber Cafes. + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsVACBanned"> + <summary> + CChecks if the user has a VAC ban on their account + </summary> + </member> + <member name="P:Steamworks.SteamApps.GameLanguage"> + <summary> + Gets the current language that the user has set. + This falls back to the Steam UI language if the user hasn't explicitly picked a language for the title. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AvailableLanguages"> + <summary> + Gets a list of the languages the current app supports. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsSubscribedToApp(Steamworks.AppId)"> + <summary> + Checks if the active user is subscribed to a specified AppId. + Only use this if you need to check ownership of another game related to yours, a demo for example. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsDlcInstalled(Steamworks.AppId)"> + <summary> + Checks if the user owns a specific DLC and if the DLC is installed + </summary> + </member> + <member name="M:Steamworks.SteamApps.PurchaseTime(Steamworks.AppId)"> + <summary> + Returns the time of the purchase of the app + </summary> + </member> + <member name="P:Steamworks.SteamApps.IsSubscribedFromFreeWeekend"> + <summary> + Checks if the user is subscribed to the current app through a free weekend + This function will return false for users who have a retail or other type of license + Before using, please ask your Valve technical contact how to package and secure your free weekened + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcInformation"> + <summary> + Returns metadata for all available DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="M:Steamworks.SteamApps.UninstallDlc(Steamworks.AppId)"> + <summary> + Install/Uninstall control for optional DLC + </summary> + </member> + <member name="P:Steamworks.SteamApps.CurrentBetaName"> + <summary> + Returns null if we're not on a beta branch, else the name of the branch + </summary> + </member> + <member name="M:Steamworks.SteamApps.MarkContentCorrupt(System.Boolean)"> + <summary> + Allows you to force verify game content on next launch. + + If you detect the game is out-of-date(for example, by having the client detect a version mismatch with a server), + you can call use MarkContentCorrupt to force a verify, show a message to the user, and then quit. + </summary> + </member> + <member name="M:Steamworks.SteamApps.InstalledDepots(Steamworks.AppId)"> + <summary> + Gets a list of all installed depots for a given App ID in mount order + </summary> + </member> + <member name="M:Steamworks.SteamApps.AppInstallDir(Steamworks.AppId)"> + <summary> + Gets the install folder for a specific AppID. + This works even if the application is not installed, based on where the game would be installed with the default Steam library location. + </summary> + </member> + <member name="M:Steamworks.SteamApps.IsAppInstalled(Steamworks.AppId)"> + <summary> + The app may not actually be owned by the current user, they may have it left over from a free weekend, etc. + </summary> + </member> + <member name="P:Steamworks.SteamApps.AppOwner"> + <summary> + Gets the Steam ID of the original owner of the current app. If it's different from the current user then it is borrowed.. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetLaunchParam(System.String)"> + <summary> + Gets the associated launch parameter if the game is run via steam://run/appid/?param1=value1;param2=value2;param3=value3 etc. + Parameter names starting with the character '@' are reserved for internal use and will always return an empty string. + Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, + but it is advised that you not param names beginning with an underscore for your own features. + </summary> + </member> + <member name="M:Steamworks.SteamApps.DlcDownloadProgress(Steamworks.AppId)"> + <summary> + Gets the download progress for optional DLC. + </summary> + </member> + <member name="P:Steamworks.SteamApps.BuildId"> + <summary> + Gets the buildid of this app, may change at any time based on backend updates to the game. + Defaults to 0 if you're not running a build downloaded from steam. + </summary> + </member> + <member name="M:Steamworks.SteamApps.GetFileDetailsAsync(System.String)"> + <summary> + Asynchronously retrieves metadata details about a specific file in the depot manifest. + Currently provides: + </summary> + </member> + <member name="P:Steamworks.SteamApps.CommandLine"> + <summary> + Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/. + This method of passing a connect string (used when joining via rich presence, accepting an + invite, etc) is preferable to passing the connect string on the operating system command + line, which is a security risk. In order for rich presence joins to go through this + path and not be placed on the OS command line, you must set a value in your app's + configuration on Steam. Ask Valve for help with this. + </summary> + </member> + <member name="M:Steamworks.SteamClient.Init(System.UInt32,System.Boolean)"> + <summary> + Initialize the steam client. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="P:Steamworks.SteamClient.IsLoggedOn"> + <summary> + Checks if the current user's Steam client is connected to the Steam servers. + If it's not then no real-time services provided by the Steamworks API will be enabled. The Steam + client will automatically be trying to recreate the connection as often as possible. When the + connection is restored a SteamServersConnected_t callback will be posted. + You usually don't need to check for this yourself. All of the API calls that rely on this will + check internally. Forcefully disabling stuff when the player loses access is usually not a + very good experience for the player and you could be preventing them from accessing APIs that do not + need a live connection to Steam. + </summary> + </member> + <member name="P:Steamworks.SteamClient.SteamId"> + <summary> + Gets the Steam ID of the account currently logged into the Steam client. This is + commonly called the 'current user', or 'local user'. + A Steam ID is a unique identifier for a Steam accounts, Steam groups, Lobbies and Chat + rooms, and used to differentiate users in all parts of the Steamworks API. + </summary> + </member> + <member name="P:Steamworks.SteamClient.Name"> + <summary> + returns the local players name - guaranteed to not be NULL. + this is the same name as on the users community profile page + </summary> + </member> + <member name="P:Steamworks.SteamClient.State"> + <summary> + gets the status of the current user + </summary> + </member> + <member name="P:Steamworks.SteamClient.AppId"> + <summary> + returns the appID of the current process + </summary> + </member> + <member name="M:Steamworks.SteamClient.RestartAppIfNecessary(System.UInt32)"> + <summary> + Checks if your executable was launched through Steam and relaunches it through Steam if it wasn't + this returns true then it starts the Steam client if required and launches your game again through it, + and you should quit your process as soon as possible. This effectively runs steam://run/AppId so it + may not relaunch the exact executable that called it, as it will always relaunch from the version + installed in your Steam library folder/ + Note that during development, when not launching via Steam, this might always return true. + </summary> + </member> + <member name="M:Steamworks.SteamClient.ValidCheck"> + <summary> + Called in interfaces that rely on this being initialized + </summary> + </member> + <member name="T:Steamworks.SteamFriends"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnChatMessage"> + <summary> + Called when chat message has been received from a friend. You'll need to turn on + ListenForFriendsMessages to recieve this. (friend, msgtype, message) + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnPersonaStateChange"> + <summary> + called when a friends' status changes + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameRichPresenceJoinRequested"> + <summary> + Called when the user tries to join a game from their friends list + rich presence will have been set with the "connect" key which is set here + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameOverlayActivated"> + <summary> + Posted when game overlay activates or deactivates + the game can use this to be pause or resume single player games + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameServerChangeRequested"> + <summary> + Called when the user tries to join a different game server from their friends list + game client should attempt to connect to specified server when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnGameLobbyJoinRequested"> + <summary> + Called when the user tries to join a lobby from their friends list + game client should attempt to connect to specified lobby when this is received + </summary> + </member> + <member name="E:Steamworks.SteamFriends.OnFriendRichPresenceUpdate"> + <summary> + Callback indicating updated data about friends rich presence information + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenOverlay(System.String)"> + <summary> + The dialog to open. Valid options are: + "friends", + "community", + "players", + "settings", + "officialgamegroup", + "stats", + "achievements". + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenUserOverlay(Steamworks.SteamId,System.String)"> + <summary> + "steamid" - Opens the overlay web browser to the specified user or groups profile. + "chat" - Opens a chat window to the specified user, or joins the group chat. + "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API. + "stats" - Opens the overlay web browser to the specified user's stats. + "achievements" - Opens the overlay web browser to the specified user's achievements. + "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend. + "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend. + "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite. + "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenStoreOverlay(Steamworks.AppId)"> + <summary> + Activates the Steam Overlay to the Steam store page for the provided app. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenWebOverlay(System.String,System.Boolean)"> + <summary> + Activates Steam Overlay web browser directly to the specified URL. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.OpenGameInviteOverlay(Steamworks.SteamId)"> + <summary> + Activates the Steam Overlay to open the invite dialog. Invitations sent from this dialog will be for the provided lobby. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetPlayedWith(Steamworks.SteamId)"> + <summary> + Mark a target user as 'played with'. + NOTE: The current user must be in game with the other player for the association to work. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.RequestUserInformation(Steamworks.SteamId,System.Boolean)"> + <summary> + Requests the persona name and optionally the avatar of a specified user. + NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them. + returns true if we're fetching the data, false if we already have it + </summary> + </member> + <member name="M:Steamworks.SteamFriends.GetRichPresence(System.String)"> + <summary> + Find a rich presence value by key for current user. Will be null if not found. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.SetRichPresence(System.String,System.String)"> + <summary> + Sets a rich presence value by key for current user. + </summary> + </member> + <member name="M:Steamworks.SteamFriends.ClearRichPresence"> + <summary> + Clears all of the current user's rich presence data. + </summary> + </member> + <member name="P:Steamworks.SteamFriends.ListenForFriendsMessages"> + <summary> + Listens for Steam friends chat messages. + You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. + After enabling this you will receive callbacks when ever the user receives a chat message. + </summary> + </member> + <member name="M:Steamworks.SteamInput.RunFrame"> + <summary> + You shouldn't really need to call this because it get called by RunCallbacks on SteamClient + but Valve think it might be a nice idea if you call it right before you get input info - + just to make sure the info you're getting is 100% up to date. + </summary> + </member> + <member name="P:Steamworks.SteamInput.Controllers"> + <summary> + Return a list of connected controllers. + </summary> + </member> + <member name="M:Steamworks.SteamInput.GetDigitalActionGlyph(Steamworks.Controller,System.String)"> + <summary> + Return an absolute path to the PNG image glyph for the provided digital action name. The current + action set in use for the controller will be used for the lookup. You should cache the result and + maintain your own list of loaded PNG assets. + </summary> + <param name="controller"></param> + <param name="action"></param> + <returns></returns> + </member> + <member name="T:Steamworks.SteamInventory"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamInventory.LoadItemDefinitions"> + <summary> + Call this if you're going to want to access definition information. You should be able to get + away with calling this once at the start if your game, assuming your items don't change all the time. + This will trigger OnDefinitionsUpdated at which point Definitions should be set. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.WaitForDefinitions(System.Single)"> + <summary> + Will call LoadItemDefinitions and wait until Definitions is not null + </summary> + </member> + <member name="M:Steamworks.SteamInventory.FindDefinition(Steamworks.Data.InventoryDefId)"> + <summary> + Try to find the definition that matches this definition ID. + Uses a dictionary so should be about as fast as possible. + </summary> + </member> + <member name="P:Steamworks.SteamInventory.Items"> + <summary> + We will try to keep this list of your items automatically up to date. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItems"> + <summary> + Update the list of Items[] + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GetAllItemsAsync"> + <summary> + Get all items and return the InventoryResult + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GenerateItemAsync(Steamworks.InventoryDef,System.Int32)"> + <summary> + This is used to grant a specific item to the user. This should + only be used for development prototyping, from a trusted server, + or if you don't care about hacked clients granting arbitrary items. + This call can be disabled by a setting on Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.CraftItemAsync(Steamworks.InventoryItem.Amount[],Steamworks.InventoryDef)"> + <summary> + Crafting! Uses the passed items to buy the target item. + You need to have set up the appropriate exchange rules in your item + definitions. This assumes all the items passed in aren't stacked. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.DeserializeAsync(System.Byte[],System.Int32)"> + <summary> + Deserializes a result set and verifies the signature bytes. + This call has a potential soft-failure mode where the Result is expired, it will + still succeed in this mode.The "expired" + result could indicate that the data may be out of date - not just due to timed + expiration( one hour ), but also because one of the items in the result set may + have been traded or consumed since the result set was generated.You could compare + the timestamp from GetResultTimestamp to ISteamUtils::GetServerRealTime to determine + how old the data is. You could simply ignore the "expired" result code and + continue as normal, or you could request the player with expired data to send + an updated result set. + You should call CheckResultSteamID on the result handle when it completes to verify + that a remote player is not pretending to have a different user's inventory. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.GrantPromoItemsAsync"> + <summary> + Grant all promotional items the user is eligible for + </summary> + </member> + <member name="M:Steamworks.SteamInventory.TriggerItemDropAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger an item drop for this user. This is for timed drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.AddPromoItemAsync(Steamworks.Data.InventoryDefId)"> + <summary> + Trigger a promo item drop. You can call this at startup, it won't + give users multiple promo drops. + </summary> + </member> + <member name="M:Steamworks.SteamInventory.StartPurchaseAsync(Steamworks.InventoryDef[])"> + <summary> + Start buying a cart load of items. This will return a positive result is the purchase has + begun. You should listen out for SteamUser.OnMicroTxnAuthorizationResponse for a success. + </summary> + </member> + <member name="T:Steamworks.SteamMatchmaking"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="P:Steamworks.SteamMatchmaking.MaxLobbyKeyLength"> + <summary> + Maximum number of characters a lobby metadata key can be + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyInvite"> + <summary> + Someone invited you to a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyEntered"> + <summary> + You joined a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyCreated"> + <summary> + You created a lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyGameCreated"> + <summary> + A game server has been associated with the lobby + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyDataChanged"> + <summary> + The lobby metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDataChanged"> + <summary> + The lobby member metadata has changed + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberJoined"> + <summary> + The lobby member joined + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberLeave"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberDisconnected"> + <summary> + The lobby member left the room + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberKicked"> + <summary> + The lobby member was kicked. The 3rd param is the user that kicked them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnLobbyMemberBanned"> + <summary> + The lobby member was banned. The 3rd param is the user that banned them. + </summary> + </member> + <member name="E:Steamworks.SteamMatchmaking.OnChatMessage"> + <summary> + A chat message was recieved from a member of a lobby + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.CreateLobbyAsync(System.Int32)"> + <summary> + Creates a new invisible lobby. Call lobby.SetPublic to take it online. + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.JoinLobbyAsync(Steamworks.SteamId)"> + <summmary> + Attempts to directly join the specified lobby + </summmary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetFavoriteServers"> + <summary> + Get a list of servers that are on your favorites list + </summary> + </member> + <member name="M:Steamworks.SteamMatchmaking.GetHistoryServers"> + <summary> + Get a list of servers that you have added to your play history + </summary> + </member> + <member name="T:Steamworks.SteamMatchmakingServers"> + <summary> + Functions for clients to access matchmaking services, favorites, and to operate on game lobbies + </summary> + </member> + <member name="T:Steamworks.SteamMusic"> + <summary> + Functions to control music playback in the steam client. + This gives games the opportunity to do things like pause the music or lower the volume, + when an important cut scene is shown, and start playing afterwards. + Nothing uses Steam Music though so this can probably get fucked + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnPlaybackChanged"> + <summary> + Playback status changed + </summary> + </member> + <member name="E:Steamworks.SteamMusic.OnVolumeChanged"> + <summary> + Volume changed, parameter is new volume + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsEnabled"> + <summary> + Checks if Steam Music is enabled + </summary> + </member> + <member name="P:Steamworks.SteamMusic.IsPlaying"> + <summary> + true if a song is currently playing, paused, or queued up to play; otherwise false. + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Status"> + <summary> + Gets the current status of the Steam Music player + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayPrevious"> + <summary> + Have the Steam Music player play the previous song. + </summary> + </member> + <member name="M:Steamworks.SteamMusic.PlayNext"> + <summary> + Have the Steam Music player skip to the next song + </summary> + </member> + <member name="P:Steamworks.SteamMusic.Volume"> + <summary> + Gets/Sets the current volume of the Steam Music player + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PSessionRequest"> + <summary> + This SteamId wants to send you a message. You should respond by calling AcceptP2PSessionWithUser + if you want to recieve their messages + </summary> + </member> + <member name="F:Steamworks.SteamNetworking.OnP2PConnectionFailed"> + <summary> + Called when packets can't get through to the specified user. + All queued packets unsent at this point will be dropped, further attempts + to send will retry making the connection (but will be dropped if we fail again). + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AcceptP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called in response to a OnP2PSessionRequest + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.AllowP2PPacketRelay(System.Boolean)"> + <summary> + Allow or disallow P2P connects to fall back on Steam server relay if direct + connection or NAT traversal can't be established. Applies to connections + created after setting or old connections that need to reconnect. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.CloseP2PSessionWithUser(Steamworks.SteamId)"> + <summary> + This should be called when you're done communicating with a user, as this will + free up all of the resources allocated for the connection under-the-hood. + If the remote user tries to send data to you again, a new OnP2PSessionRequest + callback will be posted + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.IsP2PPacketAvailable(System.Int32)"> + <summary> + Checks if a P2P packet is available to read, and gets the size of the message if there is one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte[],System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.ReadP2PPacket(System.Byte*,System.UInt32,System.UInt32@,Steamworks.SteamId@,System.Int32)"> + <summary> + Reads in a packet that has been sent from another user via SendP2PPacket.. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte[],System.Int32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworking.SendP2PPacket(Steamworks.SteamId,System.Byte*,System.UInt32,System.Int32,Steamworks.P2PSend)"> + <summary> + Sends a P2P packet to the specified user. + This is a session-less API which automatically establishes NAT-traversing or Steam relay server connections. + NOTE: The first packet send may be delayed as the NAT-traversal code runs. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket``1(Steamworks.Data.NetAddress)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6) + + To use this derive a class from SocketManager and override as much as you want. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateNormalSocket(Steamworks.Data.NetAddress,Steamworks.ISocketManager)"> + <summary> + Creates a "server" socket that listens for clients to connect to by calling + Connect, over ordinary UDP (IPv4 or IPv6). + + To use this you should pass a class that inherits ISocketManager. You can use + SocketManager to get connections and send messages, but the ISocketManager class + will received all the appropriate callbacks. + + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal``1(Steamworks.Data.NetAddress)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectNormal(Steamworks.Data.NetAddress,Steamworks.IConnectionManager)"> + <summary> + Connect to a socket created via <method>CreateListenSocketIP</method> + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.CreateRelaySocket``1(System.Int32)"> + <summary> + Creates a server that will be relayed via Valve's network (hiding the IP and improving ping) + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingSockets.ConnectRelay``1(Steamworks.SteamId,System.Int32)"> + <summary> + Connect to a relay server + </summary> + </member> + <member name="T:Steamworks.SteamNetworkingUtils"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamNetworkingUtils.OnDebugOutput"> + <summary> + A function to receive debug network information on. This will do nothing + unless you set DebugLevel to something other than None. + + You should set this to an appropriate level instead of setting it to the highest + and then filtering it by hand because a lot of energy is used by creating the strings + and your frame rate will tank and you won't know why. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Status"> + <summary> + The latest available status gathered from the SteamRelayNetworkStatus callback + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.InitRelayNetworkAccess"> + <summary> + If you know that you are going to be using the relay network (for example, + because you anticipate making P2P connections), call this to initialize the + relay network. If you do not call this, the initialization will + be delayed until the first time you use a feature that requires access + to the relay network, which will delay that first access. + + You can also call this to force a retry if the previous attempt has failed. + Performing any action that requires access to the relay network will also + trigger a retry, and so calling this function is never strictly necessary, + but it can be useful to call it a program launch time, if access to the + relay network is anticipated. + + Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + callbacks to know when initialization has completed. + Typically initialization completes in a few seconds. + + Note: dedicated servers hosted in known data centers do *not* need + to call this, since they do not make routing decisions. However, if + the dedicated server will be using P2P functionality, it will act as + a "client" and this should be called. + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.LocalPingLocation"> + <summary> + Return location info for the current host. + + It takes a few seconds to initialize access to the relay network. If + you call this very soon after startup the data may not be available yet. + + This always return the most up-to-date information we have available + right now, even if we are in the middle of re-calculating ping times. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.EstimatePingTo(Steamworks.Data.NetPingLocation)"> + <summary> + Same as PingLocation.EstimatePingTo, but assumes that one location is the local host. + This is a bit faster, especially if you need to calculate a bunch of + these in a loop to find the fastest one. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.WaitForPingDataAsync(System.Single)"> + <summary> + If you need ping information straight away, wait on this. It will return + immediately if you already have up to date ping data + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLoss"> + <summary> + [0 - 100] - Randomly discard N pct of packets + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeSendPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.FakeRecvPacketLag"> + <summary> + Delay all packets by N ms + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.ConnectionTimeout"> + <summary> + Timeout value (in ms) to use when first connecting + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.Timeout"> + <summary> + Timeout value (in ms) to use after connection is established + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.SendBufferSize"> + <summary> + Upper limit of buffered pending bytes to be sent. + If this is reached SendMessage will return LimitExceeded. + Default is 524288 bytes (512k) + </summary> + </member> + <member name="P:Steamworks.SteamNetworkingUtils.DebugLevel"> + <summary> + Get Debug Information via OnDebugOutput event + + Except when debugging, you should only use NetDebugOutput.Msg + or NetDebugOutput.Warning. For best performance, do NOT + request a high detail level and then filter out messages in the callback. + + This incurs all of the expense of formatting the messages, which are then discarded. + Setting a high priority value (low numeric value) here allows the library to avoid + doing this work. + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugLevel"> + <summary> + So we can remember and provide a Get for DebugLEvel + </summary> + </member> + <member name="F:Steamworks.SteamNetworkingUtils._debugFunc"> + <summary> + We need to keep the delegate around until it's not used anymore + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OnDebugMessage(Steamworks.NetDebugOutput,System.IntPtr)"> + <summary> + This can be called from other threads - so we're going to queue these up and process them in a safe place. + </summary> + </member> + <member name="M:Steamworks.SteamNetworkingUtils.OutputDebugMessages"> + <summary> + Called regularly from the Dispatch loop so we can provide a timely + stream of messages. + </summary> + </member> + <member name="T:Steamworks.SteamParental"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamParental.OnSettingsChanged"> + <summary> + Parental Settings Changed + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockEnabled"> + <summary> + + </summary> + </member> + <member name="P:Steamworks.SteamParental.IsParentalLockLocked"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsAppBlocked(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsAppInBlockList(Steamworks.AppId)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.IsFeatureBlocked(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="M:Steamworks.SteamParental.BIsFeatureInBlockList(Steamworks.ParentalFeature)"> + <summary> + + </summary> + </member> + <member name="T:Steamworks.SteamParties"> + <summary> + This API can be used to selectively advertise your multiplayer game session in a Steam chat room group. + Tell Steam the number of player spots that are available for your party, and a join-game string, and it + will show a beacon in the selected group and allow that many users to “follow” the beacon to your party. + Adjust the number of open slots if other players join through alternate matchmaking methods. + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnBeaconLocationsUpdated"> + <summary> + The list of possible Party beacon locations has changed + </summary> + </member> + <member name="E:Steamworks.SteamParties.OnActiveBeaconsUpdated"> + <summary> + The list of active beacons may have changed + </summary> + </member> + <member name="T:Steamworks.SteamRemotePlay"> + <summary> + Functions that provide information about Steam Remote Play sessions, streaming your game content to another computer or to a Steam Link app or hardware. + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionConnected"> + <summary> + Called when a session is connected + </summary> + </member> + <member name="E:Steamworks.SteamRemotePlay.OnSessionDisconnected"> + <summary> + Called when a session becomes disconnected + </summary> + </member> + <member name="P:Steamworks.SteamRemotePlay.SessionCount"> + <summary> + Get the number of currently connected Steam Remote Play sessions + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.GetSession(System.Int32)"> + <summary> + Get the currently connected Steam Remote Play session ID at the specified index. + IsValid will return false if it's out of bounds + </summary> + </member> + <member name="M:Steamworks.SteamRemotePlay.SendInvite(Steamworks.SteamId)"> + <summary> + Invite a friend to Remote Play Together + This returns false if the invite can't be sent + </summary> + </member> + <member name="T:Steamworks.SteamRemoteStorage"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileWrite(System.String,System.Byte[])"> + <summary> + Creates a new file, writes the bytes to the file, and then closes the file. + If the target file already exists, it is overwritten + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileRead(System.String)"> + <summary> + Opens a binary file, reads the contents of the file into a byte array, and then closes the file. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileExists(System.String)"> + <summary> + Checks whether the specified file exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FilePersisted(System.String)"> + <summary> + Checks if a specific file is persisted in the steam cloud. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileTime(System.String)"> + <summary> + Gets the specified file's last modified date/time. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileSize(System.String)"> + <summary> + Gets the specified files size in bytes. 0 if not exists. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileForget(System.String)"> + <summary> + Deletes the file from remote storage, but leaves it on the local disk and remains accessible from the API. + </summary> + </member> + <member name="M:Steamworks.SteamRemoteStorage.FileDelete(System.String)"> + <summary> + Deletes a file from the local disk, and propagates that delete to the cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaBytes"> + <summary> + Number of bytes total + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaUsedBytes"> + <summary> + Number of bytes used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.QuotaRemainingBytes"> + <summary> + Number of bytes remaining until your quota is used + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabled"> + <summary> + returns true if IsCloudEnabledForAccount AND IsCloudEnabledForApp + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForAccount"> + <summary> + Checks if the account wide Steam Cloud setting is enabled for this user + or if they disabled it in the Settings->Cloud dialog. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.IsCloudEnabledForApp"> + <summary> + Checks if the per game Steam Cloud setting is enabled for this user + or if they disabled it in the Game Properties->Update dialog. + + This must only ever be set as the direct result of the user explicitly + requesting that it's enabled or not. This is typically accomplished with + a checkbox within your in-game options + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.FileCount"> + <summary> + Gets the total number of local files synchronized by Steam Cloud. + </summary> + </member> + <member name="P:Steamworks.SteamRemoteStorage.Files"> + <summary> + Get a list of filenames synchronized by Steam Cloud + </summary> + </member> + <member name="T:Steamworks.SteamScreenshots"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotRequested"> + <summary> + A screenshot has been requested by the user from the Steam screenshot hotkey. + This will only be called if Hooked is true, in which case Steam + will not take the screenshot itself. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotReady"> + <summary> + A screenshot successfully written or otherwise added to the library and can now be tagged. + </summary> + </member> + <member name="E:Steamworks.SteamScreenshots.OnScreenshotFailed"> + <summary> + A screenshot attempt failed + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.WriteScreenshot(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.AddScreenshot(System.String,System.String,System.Int32,System.Int32)"> + <summary> + Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio + as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format. + The return value is a handle that is valid for the duration of the game process and can be used to apply tags. + JPEG, TGA, and PNG formats are supported. + </summary> + </member> + <member name="M:Steamworks.SteamScreenshots.TriggerScreenshot"> + <summary> + Causes the Steam overlay to take a screenshot. + If screenshots are being hooked by the game then a + ScreenshotRequested callback is sent back to the game instead. + </summary> + </member> + <member name="P:Steamworks.SteamScreenshots.Hooked"> + <summary> + Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or if the game handles them. + Hooking is disabled by default, and only ever enabled if you do so with this function. + If the hooking is enabled, then the ScreenshotRequested_t callback will be sent if the user presses the hotkey or + when TriggerScreenshot is called, and then the game is expected to call WriteScreenshot or AddScreenshotToLibrary in response. + </summary> + </member> + <member name="T:Steamworks.SteamServer"> + <summary> + Provides the core of the Steam Game Servers API + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnValidateAuthTicketResponse"> + <summary> + User has been authed or rejected + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the server now is logged on and has a working connection to the Steam master server. + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServerConnectFailure"> + <summary> + This will occur periodically if the Steam client is not connected, and has failed when retrying to establish a connection (result, stilltrying) + </summary> + </member> + <member name="E:Steamworks.SteamServer.OnSteamServersDisconnected"> + <summary> + Disconnected from Steam + </summary> + </member> + <member name="M:Steamworks.SteamServer.Init(Steamworks.AppId,Steamworks.SteamServerInit,System.Boolean)"> + <summary> + Initialize the steam server. + If asyncCallbacks is false you need to call RunCallbacks manually every frame. + </summary> + </member> + <member name="M:Steamworks.SteamServer.RunCallbacks"> + <summary> + Run the callbacks. This is also called in Async callbacks. + </summary> + </member> + <member name="P:Steamworks.SteamServer.DedicatedServer"> + <summary> + Sets whether this should be marked as a dedicated server. + If not, it is assumed to be a listen server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MaxPlayers"> + <summary> + Gets or sets the current MaxPlayers. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.BotCount"> + <summary> + Gets or sets the current BotCount. + This doesn't enforce any kind of limit, it just updates the master server. + </summary> + </member> + <member name="P:Steamworks.SteamServer.MapName"> + <summary> + Gets or sets the current Map Name. + </summary> + </member> + <member name="P:Steamworks.SteamServer.ModDir"> + <summary> + Gets or sets the current ModDir + </summary> + </member> + <member name="P:Steamworks.SteamServer.Product"> + <summary> + Gets the current product + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameDescription"> + <summary> + Gets or sets the current Product + </summary> + </member> + <member name="P:Steamworks.SteamServer.ServerName"> + <summary> + Gets or sets the current ServerName + </summary> + </member> + <member name="P:Steamworks.SteamServer.Passworded"> + <summary> + Set whether the server should report itself as passworded + </summary> + </member> + <member name="P:Steamworks.SteamServer.GameTags"> + <summary> + Gets or sets the current GameTags. This is a comma seperated list of tags for this server. + When querying the server list you can filter by these tags. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOnAnonymous"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="M:Steamworks.SteamServer.LogOff"> + <summary> + Log onto Steam anonymously. + </summary> + </member> + <member name="P:Steamworks.SteamServer.LoggedOn"> + <summary> + Returns true if the server is connected and registered with the Steam master server + You should have called LogOnAnonymous etc on startup. + </summary> + </member> + <member name="P:Steamworks.SteamServer.PublicIp"> + <summary> + To the best of its ability this tries to get the server's + current public ip address. Be aware that this is likely to return + null for the first few seconds after initialization. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeats"> + <summary> + Enable or disable heartbeats, which are sent regularly to the master server. + Enabled by default. + </summary> + </member> + <member name="P:Steamworks.SteamServer.AutomaticHeartbeatRate"> + <summary> + Set heartbeat interval, if automatic heartbeats are enabled. + You can leave this at the default. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ForceHeartbeat"> + <summary> + Force send a heartbeat to the master server instead of waiting + for the next automatic update (if you've left them enabled) + </summary> + </member> + <member name="M:Steamworks.SteamServer.UpdatePlayer(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Update this connected player's information. You should really call this + any time a player's name or score changes. This keeps the information shown + to server queries up to date. + </summary> + </member> + <member name="M:Steamworks.SteamServer.SetKey(System.String,System.String)"> + <summary> + Sets a Key Value. These can be anything you like, and are accessible + when querying servers from the server list. + + Information describing gamemodes are common here. + </summary> + </member> + <member name="M:Steamworks.SteamServer.ClearKeys"> + <summary> + Remove all key values + </summary> + </member> + <member name="M:Steamworks.SteamServer.BeginAuthSession(System.Byte[],Steamworks.SteamId)"> + <summary> + Start authorizing a ticket. This user isn't authorized yet. Wait for a call to OnAuthChange. + </summary> + </member> + <member name="M:Steamworks.SteamServer.EndSession(Steamworks.SteamId)"> + <summary> + Forget this guy. They're no longer in the game. + </summary> + </member> + <member name="M:Steamworks.SteamServer.GetOutgoingPacket(Steamworks.Data.OutgoingPacket@)"> + <summary> + If true, Steam wants to send a packet. You should respond by sending + this packet in an unconnected way to the returned Address and Port. + </summary> + <param name="packet">Packet to send. The Data passed is pooled - so use it immediately.</param> + <returns>True if we want to send a packet</returns> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.Byte[],System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.HandleIncomingPacket(System.IntPtr,System.Int32,System.UInt32,System.UInt16)"> + <summary> + We have received a server query on our game port. Pass it to Steam to handle. + </summary> + </member> + <member name="M:Steamworks.SteamServer.UserHasLicenseForApp(Steamworks.SteamId,Steamworks.AppId)"> + <summary> + Does the user own this app (which could be DLC) + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.RequestUserStatsAsync(Steamworks.SteamId)"> + <summary> + Downloads stats for the user + If the user has no stats will return fail + these stats will only be auto-updated for clients playing on the server + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Set the named stat for this user. Setting stats should follow the rules + you defined in Steamworks. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetInt(Steamworks.SteamId,System.String,System.Int32)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetFloat(Steamworks.SteamId,System.String,System.Single)"> + <summary> + Get the named stat for this user. If getting the stat failed, will return + defaultValue. You should have called Refresh for this userid - which downloads + the stats from the backend. If you didn't call it this will always return defaultValue. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.SetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Unlocks the specified achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.ClearAchievement(Steamworks.SteamId,System.String)"> + <summary> + Resets the unlock status of an achievement for the specified user. Must have called Refresh on a steamid first. + Remember to use Commit after use. + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.GetAchievement(Steamworks.SteamId,System.String)"> + <summary> + Return true if available, exists and unlocked + </summary> + </member> + <member name="M:Steamworks.SteamServerStats.StoreUserStats(Steamworks.SteamId)"> + <summary> + Once you've set a stat change on a user you need to commit your changes. + You can do that using this function. The callback will let you know if + your action succeeded, but most of the time you can fire and forget. + </summary> + </member> + <member name="T:Steamworks.SteamUGC"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUGC.OnDownloadItemResult"> + <summary> + Posted after Download call + </summary> + </member> + <member name="M:Steamworks.SteamUGC.Download(Steamworks.Data.PublishedFileId,System.Boolean)"> + <summary> + Start downloading this item. You'll get notified of completion via OnDownloadItemResult. + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="highPriority">If true this should go straight to the top of the download list</param> + <returns>true if nothing went wrong and the download is started</returns> + </member> + <member name="M:Steamworks.SteamUGC.DownloadAsync(Steamworks.Data.PublishedFileId,System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Will attempt to download this item asyncronously - allowing you to instantly react to its installation + </summary> + <param name="fileId">The ID of the file you want to download</param> + <param name="progress">An optional callback</param> + <param name="ct">Allows you to send a message to cancel the download anywhere during the process</param> + <param name="milisecondsUpdateDelay">How often to call the progress function</param> + <returns>true if downloaded and installed correctly</returns> + </member> + <member name="M:Steamworks.SteamUGC.QueryFileAsync(Steamworks.Data.PublishedFileId)"> + <summary> + Utility function to fetch a single item. Internally this uses Ugc.FileQuery - + which you can use to query multiple items if you need to. + </summary> + </member> + <member name="T:Steamworks.SteamUser"> + <summary> + Functions for accessing and manipulating Steam user information. + This is also where the APIs for Steam Voice are exposed. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersConnected"> + <summary> + Called when a connections to the Steam back-end has been established. + This means the Steam client now has a working connection to the Steam servers. + Usually this will have occurred before the game has launched, and should only be seen if the + user has dropped connection due to a networking issue or a Steam server update. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServerConnectFailure"> + <summary> + Called when a connection attempt has failed. + This will occur periodically if the Steam client is not connected, + and has failed when retrying to establish a connection. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnSteamServersDisconnected"> + <summary> + Called if the client has lost connection to the Steam servers. + Real-time services will be disabled until a matching OnSteamServersConnected has been posted. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnClientGameServerDeny"> + <summary> + Sent by the Steam server to the client telling it to disconnect from the specified game server, + which it may be in the process of or already connected to. + The game client should immediately disconnect upon receiving this message. + This can usually occur if the user doesn't have rights to play on the game server. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnLicensesUpdated"> + <summary> + Called whenever the users licenses (owned packages) changes. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnValidateAuthTicketResponse"> + <summary> + Called when an auth ticket has been validated. + The first parameter is the steamid of this user + The second is the Steam ID that owns the game, this will be different from the first + if the game is being borrowed via Steam Family Sharing + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGetAuthSessionTicketResponse"> + <summary> + Used internally for GetAuthSessionTicketAsync + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnMicroTxnAuthorizationResponse"> + <summary> + Called when a user has responded to a microtransaction authorization request. + ( appid, orderid, user authorized ) + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnGameWebCallback"> + <summary> + Sent to your game in response to a steam://gamewebcallback/ command from a user clicking a link in the Steam overlay browser. + You can use this to add support for external site signups where you want to pop back into the browser after some web page + signup sequence, and optionally get back some detail about that. + </summary> + </member> + <member name="E:Steamworks.SteamUser.OnDurationControl"> + <summary> + Sent for games with enabled anti indulgence / duration control, for enabled users. + Lets the game know whether persistent rewards or XP should be granted at normal rate, + half rate, or zero rate. + </summary> + </member> + <member name="P:Steamworks.SteamUser.VoiceRecord"> + <summary> + Starts/Stops voice recording. + Once started, use GetAvailableVoice and GetVoice to get the data, and then call StopVoiceRecording + when the user has released their push-to-talk hotkey or the game session has completed. + </summary> + </member> + <member name="P:Steamworks.SteamUser.HasVoiceData"> + <summary> + Returns true if we have voice data waiting to be read + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceData(System.IO.Stream)"> + <summary> + Reads the voice data and returns the number of bytes written. + The compressed data can be transmitted by your application and decoded back into raw audio data using + DecompressVoice on the other side. The compressed data provided is in an arbitrary format and is not meant to be played directly. + This should be called once per frame, and at worst no more than four times a second to keep the microphone input delay as low as + possible. Calling this any less may result in gaps in the returned stream. + </summary> + </member> + <member name="M:Steamworks.SteamUser.ReadVoiceDataBytes"> + <summary> + Reads the voice data and returns the bytes. You should obviously ideally be using + ReadVoiceData because it won't be creating a new byte array every call. But this + makes it easier to get it working, so let the babies have their bottle. + </summary> + </member> + <member name="M:Steamworks.SteamUser.DecompressVoice(System.IO.Stream,System.Int32,System.IO.Stream)"> + <summary> + Decodes the compressed voice data returned by GetVoice. + The output data is raw single-channel 16-bit PCM audio.The decoder supports any sample rate from 11025 to 48000. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicket"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetAuthSessionTicketAsync(System.Double)"> + <summary> + Retrieve a authentication ticket to be sent to the entity who wishes to authenticate you. + This waits for a positive response from the backend before returning the ticket. This means + the ticket is definitely ready to go as soon as it returns. Will return null if the callback + times out or returns negatively. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsBehindNAT"> + <summary> + Checks if the current users looks like they are behind a NAT device. + This is only valid if the user is connected to the Steam servers and may not catch all forms of NAT. + </summary> + </member> + <member name="P:Steamworks.SteamUser.SteamLevel"> + <summary> + Gets the Steam level of the user, as shown on their Steam community profile. + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetStoreAuthUrlAsync(System.String)"> + <summary> + Requests a URL which authenticates an in-game browser for store check-out, and then redirects to the specified URL. + As long as the in-game browser accepts and handles session cookies, Steam microtransaction checkout pages will automatically recognize the user instead of presenting a login page. + NOTE: The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. + NOTE: The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneVerified"> + <summary> + Checks whether the current user has verified their phone number. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsTwoFactorEnabled"> + <summary> + Checks whether the current user has Steam Guard two factor authentication enabled on their account. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneIdentifying"> + <summary> + Checks whether the user's phone number is used to uniquely identify them. + </summary> + </member> + <member name="P:Steamworks.SteamUser.IsPhoneRequiringVerification"> + <summary> + Checks whether the current user's phone number is awaiting (re)verification. + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync(System.Byte[])"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + If you get a null result from this it's probably because you're calling it too often. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.RequestEncryptedAppTicketAsync"> + <summary> + Requests an application ticket encrypted with the secret "encrypted app ticket key". + The encryption key can be obtained from the Encrypted App Ticket Key page on the App Admin for your app. + There can only be one call pending, and this call is subject to a 60 second rate limit. + This can fail if you don't have an encrypted ticket set for your app here https://partner.steamgames.com/apps/sdkauth/ + </summary> + </member> + <member name="M:Steamworks.SteamUser.GetDurationControl"> + <summary> + Get anti indulgence / duration control + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementIconFetched"> + <summary> + called when the achivement icon is loaded + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsReceived"> + <summary> + called when the latests stats and achievements have been received + from the server + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsStored"> + <summary> + result of a request to store the user stats for a game + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnAchievementProgress"> + <summary> + result of a request to store the achievements for a game, or an + "indicate progress" call. If both m_nCurProgress and m_nMaxProgress + are zero, that means the achievement has been fully unlocked + </summary> + </member> + <member name="E:Steamworks.SteamUserStats.OnUserStatsUnloaded"> + <summary> + Callback indicating that a user's stats have been unloaded + </summary> + </member> + <member name="P:Steamworks.SteamUserStats.Achievements"> + <summary> + Get the available achievements + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.IndicateAchievementProgress(System.String,System.Int32,System.Int32)"> + <summary> + Show the user a pop-up notification with the current progress toward an achievement. + Will return false if RequestCurrentStats has not completed and successfully returned + its callback, if the achievement doesn't exist/has unpublished changes in the app's + Steamworks Admin page, or if the achievement is unlocked. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.PlayerCountAsync"> + <summary> + Tries to get the number of players currently playing this game. + Or -1 if failed. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.StoreStats"> + <summary> + Send the changed stats and achievements data to the server for permanent storage. + If this fails then nothing is sent to the server. It's advisable to keep trying until the call is successful. + This call can be rate limited. Call frequency should be on the order of minutes, rather than seconds.You should only be calling this during major state changes such as the end of a round, the map changing, or the user leaving a server. This call is required to display the achievement unlock notification dialog though, so if you have called SetAchievement then it's advisable to call this soon after that. + If you have stats or achievements that you have saved locally but haven't uploaded with this function when your application process ends then this function will automatically be called. + You can find additional debug information written to the %steam_install%\logs\stats_log.txt file. + This function returns true upon success if : + RequestCurrentStats has completed and successfully returned its callback AND + the current game has stats associated with it in the Steamworks Partner backend, and those stats are published. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestCurrentStats"> + <summary> + Asynchronously request the user's current stats and achievements from the server. + You must always call this first to get the initial status of stats and achievements. + Only after the resulting callback comes back can you start calling the rest of the stats + and achievement functions for the current user. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.RequestGlobalStatsAsync(System.Int32)"> + <summary> + Asynchronously fetches global stats data, which is available for stats marked as + "aggregated" in the App Admin panel of the Steamworks website. + You must have called RequestCurrentStats and it needs to return successfully via + its callback prior to calling this. + </summary> + <param name="days">How many days of day-by-day history to retrieve in addition to the overall totals. The limit is 60.</param> + <returns>OK indicates success, InvalidState means you need to call RequestCurrentStats first, Fail means the remote call failed</returns> + </member> + <member name="M:Steamworks.SteamUserStats.FindOrCreateLeaderboardAsync(System.String,Steamworks.Data.LeaderboardSort,Steamworks.Data.LeaderboardDisplay)"> + <summary> + Gets a leaderboard by name, it will create it if it's not yet created. + Leaderboards created with this function will not automatically show up in the Steam Community. + You must manually set the Community Name field in the App Admin panel of the Steamworks website. + As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on + the Steamworks website and using FindLeaderboard unless you're expected to have a large amount of + dynamically created leaderboards. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Int32)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.AddStat(System.String,System.Single)"> + <summary> + Adds this amount to the named stat. Internally this calls Get() and adds + to that value. Steam doesn't provide a mechanism for atomically increasing + stats like this, this functionality is added here as a convenience. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Int32)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.SetStat(System.String,System.Single)"> + <summary> + Set a stat value. This will automatically call StoreStats() after a successful call + unless you pass false as the last argument. + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatInt(System.String)"> + <summary> + Get a Int stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.GetStatFloat(System.String)"> + <summary> + Get a float stat value + </summary> + </member> + <member name="M:Steamworks.SteamUserStats.ResetAll(System.Boolean)"> + <summary> + Practically wipes the slate clean for this user. If includeAchievements is true, will wipe + any achievements too. + </summary> + <returns></returns> + </member> + <member name="T:Steamworks.SteamUtils"> + <summary> + Interface which provides access to a range of miscellaneous utility functions + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnIpCountryChanged"> + <summary> + The country of the user changed + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnLowBatteryPower"> + <summary> + Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute + The parameter is the number of minutes left + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnSteamShutdown"> + <summary> + Called when Steam wants to shutdown + </summary> + </member> + <member name="E:Steamworks.SteamUtils.OnGamepadTextInputDismissed"> + <summary> + Big Picture gamepad text input has been closed. Parameter is true if text was submitted, false if cancelled etc. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceAppActive"> + <summary> + Returns the number of seconds since the application was active + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SecondsSinceComputerActive"> + <summary> + Returns the number of seconds since the user last moved the mouse etc + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamServerTime"> + <summary> + Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IpCountry"> + <summary> + returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database) + e.g "US" or "UK". + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImageSize(System.Int32,System.UInt32@,System.UInt32@)"> + <summary> + returns true if the image exists, and the buffer was successfully filled out + results are returned in RGBA format + the destination buffer size should be 4 * height * width * sizeof(char) + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetImage(System.Int32)"> + <summary> + returns the image in RGBA format + </summary> + </member> + <member name="P:Steamworks.SteamUtils.UsingBatteryPower"> + <summary> + Returns true if we're using a battery (ie, a laptop not plugged in) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.CurrentBatteryPower"> + <summary> + Returns battery power [0-1] + </summary> + </member> + <member name="P:Steamworks.SteamUtils.OverlayNotificationPosition"> + <summary> + Sets the position where the overlay instance for the currently calling game should show notifications. + This position is per-game and if this function is called from outside of a game context it will do nothing. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsOverlayEnabled"> + <summary> + Returns true if the overlay is running and the user can access it. The overlay process could take a few seconds to + start and hook the game process, so this function will initially return false while the overlay is loading. + </summary> + </member> + <member name="P:Steamworks.SteamUtils.DoesOverlayNeedPresent"> + <summary> + Normally this call is unneeded if your game has a constantly running frame loop that calls the + D3D Present API, or OGL SwapBuffers API every frame. + + However, if you have a game that only refreshes the screen on an event driven basis then that can break + the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also + need to Present() to the screen any time an even needing a notification happens or when the overlay is + brought up over the game by a user. You can use this API to ask the overlay if it currently need a present + in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you + refresh the screen with Present or SwapBuffers to allow the overlay to do it's work. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.CheckFileSignatureAsync(System.String)"> + <summary> + Asynchronous call to check if an executable file has been signed using the public key set on the signing tab + of the partner site, for example to refuse to load modified executable files. + </summary> + </member> + <member name="M:Steamworks.SteamUtils.ShowGamepadTextInput(Steamworks.GamepadTextInputMode,Steamworks.GamepadTextInputLineMode,System.String,System.Int32,System.String)"> + <summary> + Activates the Big Picture text input dialog which only supports gamepad input + </summary> + </member> + <member name="M:Steamworks.SteamUtils.GetEnteredGamepadText"> + <summary> + Returns previously entered text + </summary> + </member> + <member name="P:Steamworks.SteamUtils.SteamUILanguage"> + <summary> + returns the language the steam client is running in, you probably want + Apps.CurrentGameLanguage instead, this is for very special usage cases + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamRunningInVR"> + <summary> + returns true if Steam itself is running in VR mode + </summary> + </member> + <member name="M:Steamworks.SteamUtils.SetOverlayNotificationInset(System.Int32,System.Int32)"> + <summary> + Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamInBigPictureMode"> + <summary> + returns true if Steam and the Steam Overlay are running in Big Picture mode + Games much be launched through the Steam client to enable the Big Picture overlay. During development, + a game can be added as a non-steam game to the developers library to test this feature + </summary> + </member> + <member name="M:Steamworks.SteamUtils.StartVRDashboard"> + <summary> + ask SteamUI to create and render its OpenVR dashboard + </summary> + </member> + <member name="P:Steamworks.SteamUtils.VrHeadsetStreaming"> + <summary> + Set whether the HMD content will be streamed via Steam In-Home Streaming + If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed. + If this is set to false, then the application window will be streamed instead, and remote input will be allowed. + The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. + (this is useful for games that have asymmetric multiplayer gameplay) + </summary> + </member> + <member name="P:Steamworks.SteamUtils.IsSteamChinaLauncher"> + <summary> + Returns whether this steam client is a Steam China specific client, vs the global client + </summary> + </member> + <member name="T:Steamworks.SteamVideo"> + <summary> + Undocumented Parental Settings + </summary> + </member> + <member name="P:Steamworks.SteamVideo.IsBroadcasting"> + <summary> + Return true if currently using Steam's live broadcasting + </summary> + </member> + <member name="P:Steamworks.SteamVideo.NumViewers"> + <summary> + If we're broadcasting, will return the number of live viewers + </summary> + </member> + <member name="P:Steamworks.Controller.ActionSet"> + <summary> + Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') + This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in + our state loops, instead of trying to place it in all of your state transitions. + </summary> + </member> + <member name="M:Steamworks.Controller.GetDigitalState(System.String)"> + <summary> + Returns the current state of the supplied digital game action + </summary> + </member> + <member name="M:Steamworks.Controller.GetAnalogState(System.String)"> + <summary> + Returns the current state of these supplied analog game action + </summary> + </member> + <member name="P:Steamworks.Friend.IsMe"> + <summary> + Returns true if this is the local user + </summary> + </member> + <member name="P:Steamworks.Friend.IsFriend"> + <summary> + Return true if this is a friend + </summary> + </member> + <member name="P:Steamworks.Friend.IsBlocked"> + <summary> + Returns true if you have this user blocked + </summary> + </member> + <member name="P:Steamworks.Friend.IsPlayingThisGame"> + <summary> + Return true if this user is playing the game we're running + </summary> + </member> + <member name="P:Steamworks.Friend.IsOnline"> + <summary> + Returns true if this friend is online + </summary> + </member> + <member name="M:Steamworks.Friend.RequestInfoAsync"> + <summary> + Sometimes we don't know the user's name. This will wait until we have + downloaded the information on this user. + </summary> + </member> + <member name="P:Steamworks.Friend.IsAway"> + <summary> + Returns true if this friend is marked as away + </summary> + </member> + <member name="P:Steamworks.Friend.IsBusy"> + <summary> + Returns true if this friend is marked as busy + </summary> + </member> + <member name="P:Steamworks.Friend.IsSnoozing"> + <summary> + Returns true if this friend is marked as snoozing + </summary> + </member> + <member name="M:Steamworks.Friend.InviteToGame(System.String)"> + <summary> + Invite this friend to the game that we are playing + </summary> + </member> + <member name="M:Steamworks.Friend.SendMessage(System.String)"> + <summary> + Sends a message to a Steam friend. Returns true if success + </summary> + </member> + <member name="M:Steamworks.Friend.RequestUserStatsAsync"> + <summary> + Tries to get download the latest user stats + </summary> + <returns>True if successful, False if failure</returns> + </member> + <member name="M:Steamworks.Friend.GetStatFloat(System.String,System.Single)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetStatInt(System.String,System.Int32)"> + <summary> + Gets a user stat. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the stat you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievement(System.String,System.Boolean)"> + <summary> + Gets a user achievement state. Must call RequestUserStats first. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <param name="defult">Will return this value if not available</param> + <returns>The value, or defult if not available</returns> + </member> + <member name="M:Steamworks.Friend.GetAchievementUnlockTime(System.String)"> + <summary> + Gets a the time this achievement was unlocked. + </summary> + <param name="statName">The name of the achievement you want to get</param> + <returns>The time unlocked. If it wasn't unlocked, or you haven't downloaded the stats yet - will return DateTime.MinValue</returns> + </member> + <member name="P:Steamworks.InventoryDef.Name"> + <summary> + Shortcut to call GetProperty( "name" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Description"> + <summary> + Shortcut to call GetProperty( "description" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrl"> + <summary> + Shortcut to call GetProperty( "icon_url" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IconUrlLarge"> + <summary> + Shortcut to call GetProperty( "icon_url_large" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.PriceCategory"> + <summary> + Shortcut to call GetProperty( "price_category" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Type"> + <summary> + Shortcut to call GetProperty( "type" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.IsGenerator"> + <summary> + Returns true if this is an item that generates an item, rather + than something that is actual an item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.ExchangeSchema"> + <summary> + Shortcut to call GetProperty( "exchange" ) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipes"> + <summary> + Get a list of exchanges that are available to make this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Marketable"> + <summary> + Shortcut to call GetBoolProperty( "marketable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Tradable"> + <summary> + Shortcut to call GetBoolProperty( "tradable" ) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Created"> + <summary> + Gets the property timestamp + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Modified"> + <summary> + Gets the property modified + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty(System.String)"> + <summary> + Get a specific property by name + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetBoolProperty(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetProperty``1(System.String)"> + <summary> + Read a raw property from the definition schema + </summary> + </member> + <member name="P:Steamworks.InventoryDef.Properties"> + <summary> + Gets a list of all properties on this item + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalPrice"> + <summary> + Returns the price of this item in the local currency (SteamInventory.Currency) + </summary> + </member> + <member name="P:Steamworks.InventoryDef.LocalBasePrice"> + <summary> + If the price has been discounted, LocalPrice will differ from LocalBasePrice + (assumed, this isn't documented) + </summary> + </member> + <member name="M:Steamworks.InventoryDef.GetRecipesContainingThis"> + <summary> + Return a list of recepies that contain this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Properties"> + <summary> + Only available if the result set was created with the getproperties + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsNoTrade"> + <summary> + This item is account-locked and cannot be traded or given away. + This is an item status flag which is permanently attached to specific item instances + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsRemoved"> + <summary> + The item has been destroyed, traded away, expired, or otherwise invalidated. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.IsConsumed"> + <summary> + The item quantity has been decreased by 1 via ConsumeItem API. + This is an action confirmation flag which is only set one time, as part of a result set. + </summary> + </member> + <member name="M:Steamworks.InventoryItem.ConsumeAsync(System.Int32)"> + <summary> + Consumes items from a user's inventory. If the quantity of the given item goes to zero, it is permanently removed. + Once an item is removed it cannot be recovered.This is not for the faint of heart - if your game implements item removal at all, + a high-friction UI confirmation process is highly recommended.ConsumeItem can be restricted to certain item definitions or fully + blocked via the Steamworks website to minimize support/abuse issues such as the classic "my brother borrowed my laptop and deleted all of my rare items". + </summary> + </member> + <member name="M:Steamworks.InventoryItem.SplitStackAsync(System.Int32)"> + <summary> + Split stack into two items + </summary> + </member> + <member name="M:Steamworks.InventoryItem.AddAsync(Steamworks.InventoryItem,System.Int32)"> + <summary> + Add x units of the target item to this item + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Acquired"> + <summary> + Will try to return the date that this item was aquired. You need to have for the items + with their properties for this to work. + </summary> + </member> + <member name="P:Steamworks.InventoryItem.Origin"> + <summary> + Tries to get the origin property. Need properties for this to work. + Will return a string like "market" + </summary> + </member> + <member name="T:Steamworks.InventoryItem.Amount"> + <summary> + Small utility class to describe an item with a quantity + </summary> + </member> + <member name="T:Steamworks.InventoryRecipe"> + <summary> + A structured description of an item exchange + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.DefinitionId"> + <summary> + The definition ID of the ingredient. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Definition"> + <summary> + If we don't know about this item definition this might be null. + In which case, DefinitionId should still hold the correct id. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredient.Count"> + <summary> + The amount of this item needed. Generally this will be 1. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Result"> + <summary> + The item that this will create. + </summary> + </member> + <member name="F:Steamworks.InventoryRecipe.Ingredients"> + <summary> + The items, with quantity required to create this item. + </summary> + </member> + <member name="M:Steamworks.InventoryResult.BelongsTo(Steamworks.SteamId)"> + <summary> + Checks whether an inventory result handle belongs to the specified Steam ID. + This is important when using Deserialize, to verify that a remote player is not pretending to have a different user's inventory + </summary> + </member> + <member name="M:Steamworks.InventoryResult.Serialize"> + <summary> + Serialized result sets contain a short signature which can't be forged or replayed across different game sessions. + A result set can be serialized on the local client, transmitted to other players via your game networking, and + deserialized by the remote players.This is a secure way of preventing hackers from lying about posessing + rare/high-value items. Serializes a result set with signature bytes to an output buffer.The size of a serialized + result depends on the number items which are being serialized.When securely transmitting items to other players, + it is recommended to use GetItemsByID first to create a minimal result set. + Results have a built-in timestamp which will be considered "expired" after an hour has elapsed.See DeserializeResult + for expiration handling. + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.Owner"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="P:Steamworks.PartyBeacon.MetaData"> + <summary> + Creator of the beacon + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.JoinAsync"> + <summary> + Will attempt to join the party. If successful will return a connection string. + If failed, will return null + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.OnReservationCompleted(Steamworks.SteamId)"> + <summary> + When a user follows your beacon, Steam will reserve one of the open party slots for them, and send your game a ReservationNotification callback. + When that user joins your party, call OnReservationCompleted to notify Steam that the user has joined successfully + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.CancelReservation(Steamworks.SteamId)"> + <summary> + To cancel a reservation (due to timeout or user input), call this. + Steam will open a new reservation slot. + Note: The user may already be in-flight to your game, so it's possible they will still connect and try to join your party. + </summary> + </member> + <member name="M:Steamworks.PartyBeacon.Destroy"> + <summary> + Turn off the beacon + </summary> + </member> + <member name="T:Steamworks.SteamServerInit"> + <summary> + Used to set up the server. + The variables in here are all required to be set, and can't be changed once the server is created. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.VersionString"> + <summary> + The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. + If you go into the dedicated server tab on steamworks you'll be able to server the latest version. If this version number is + less than that latest version then your server won't show. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.ModDir"> + <summary> + This should be the same directory game where gets installed into. Just the folder name, not the whole path. I.e. "Rust", "Garrysmod". + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.GameDescription"> + <summary> + The game description. Setting this to the full name of your game is recommended. + </summary> + </member> + <member name="F:Steamworks.SteamServerInit.DedicatedServer"> + <summary> + Is a dedicated server + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithRandomSteamPort"> + <summary> + Set the Steam quert port + </summary> + </member> + <member name="M:Steamworks.SteamServerInit.WithQueryShareGamePort"> + <summary> + If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE into usQueryPort, then it causes the game server API to use + "GameSocketShare" mode, which means that the game is responsible for sending and receiving UDP packets for the master + server updater. + + More info about this here: https://partner.steamgames.com/doc/api/ISteamGameServer#HandleIncomingPacket + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewCommunityFile"> + <summary> + Create a Normal Workshop item that can be subscribed to + </summary> + </member> + <member name="P:Steamworks.Ugc.Editor.NewMicrotransactionFile"> + <summary> + Workshop item that is meant to be voted on for the purpose of selling in-game + </summary> + </member> + <member name="F:Steamworks.Ugc.PublishResult.NeedsWorkshopAgreement"> + <summary> + https://partner.steamgames.com/doc/features/workshop/implementation#Legal + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Id"> + <summary> + The actual ID of this file + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Title"> + <summary> + The given title of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Description"> + <summary> + The description of this item, in your local language if available + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Tags"> + <summary> + A list of tags for this item, all lowercase + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CreatorApp"> + <summary> + App Id of the app that created this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ConsumerApp"> + <summary> + App Id of the app that will consume this item. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Owner"> + <summary> + User who created this content + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Score"> + <summary> + The bayesian average for up votes / total votes, between [0,1] + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Created"> + <summary> + Time when the published item was created + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Updated"> + <summary> + Time when the published item was last updated + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPublic"> + <summary> + True if this is publically visible + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsFriendsOnly"> + <summary> + True if this item is only visible by friends of the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsPrivate"> + <summary> + True if this is only visible to the creator + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsBanned"> + <summary> + True if this item has been banned + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.IsAcceptedForUse"> + <summary> + Whether the developer of this app has specifically flagged this item as accepted in the Workshop + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesUp"> + <summary> + The number of upvotes of this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.VotesDown"> + <summary> + The number of downvotes of this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Download(System.Boolean)"> + <summary> + Start downloading this item. + If this returns false the item isn't getting downloaded. + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesTotal"> + <summary> + If we're downloading, how big the total download is + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadBytesDownloaded"> + <summary> + If we're downloading, how much we've downloaded + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.SizeBytes"> + <summary> + If we're installed, how big is the install + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DownloadAmount"> + <summary> + If we're downloading our current progress as a delta betwen 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.HasTag(System.String)"> + <summary> + A case insensitive check for tag + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Subscribe"> + <summary> + Allows the user to subscribe to this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.DownloadAsync(System.Action{System.Single},System.Int32,System.Threading.CancellationToken)"> + <summary> + Allows the user to subscribe to download this item asyncronously + If CancellationToken is default then there is 60 seconds timeout + Progress will be set to 0-1 + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Unsubscribe"> + <summary> + Allows the user to unsubscribe from this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.AddFavorite"> + <summary> + Adds item to user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.RemoveFavorite"> + <summary> + Removes item from user favorite list + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Vote(System.Boolean)"> + <summary> + Allows the user to rate a workshop item up or down. + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.GetUserVote"> + <summary> + Gets the current users vote on the item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.Url"> + <summary> + Return a URL to view this item online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.ChangelogUrl"> + <summary> + The URl to view this item's changelog + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.CommentsUrl"> + <summary> + The URL to view the comments on this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.DiscussUrl"> + <summary> + The URL to discuss this item + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.StatsUrl"> + <summary> + The URL to view this items stats online + </summary> + </member> + <member name="P:Steamworks.Ugc.Item.PreviewImageUrl"> + <summary> + The URL to the preview image for this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Item.Edit"> + <summary> + Edit this item + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAnyTag"> + <summary> + Found items must have at least one of the defined tags + </summary> + </member> + <member name="M:Steamworks.Ugc.Query.MatchAllTags"> + <summary> + Found items must have all defined tags + </summary> + </member> + <member name="P:Steamworks.Epoch.Current"> + <summary> + Returns the current Unix Epoch + </summary> + </member> + <member name="M:Steamworks.Epoch.ToDateTime(System.Decimal)"> + <summary> + Convert an epoch to a datetime + </summary> + </member> + <member name="M:Steamworks.Epoch.FromDateTime(System.DateTime)"> + <summary> + Convert a DateTime to a unix time + </summary> + </member> + <member name="M:Steamworks.Helpers.TakeBuffer(System.Int32)"> + <summary> + Returns a buffer. This will get returned and reused later on. + </summary> + </member> + <member name="T:Steamworks.PreserveAttribute"> + <summary> + Prevent unity from stripping shit we depend on + https://docs.unity3d.com/Manual/ManagedCodeStripping.html + </summary> + </member> + </members> +</doc> |