38 lines
775 B
C#
38 lines
775 B
C#
using System.Runtime.InteropServices;
|
|
|
|
namespace Steamworks.Data
|
|
{
|
|
[StructLayout( LayoutKind.Explicit, Size = 136, Pack = 1 )]
|
|
public struct NetIdentity
|
|
{
|
|
[FieldOffset( 0 )]
|
|
internal IdentityType type;
|
|
|
|
[FieldOffset( 4 )]
|
|
internal int m_cbSize;
|
|
|
|
[FieldOffset( 8 )]
|
|
internal SteamId steamID;
|
|
|
|
public static implicit operator NetIdentity( SteamId value )
|
|
{
|
|
return new NetIdentity { steamID = value, type = IdentityType.SteamID, m_cbSize = 8 };
|
|
}
|
|
|
|
public static implicit operator SteamId( NetIdentity value )
|
|
{
|
|
return value.steamID;
|
|
}
|
|
|
|
public override string ToString() => $"{type};{m_cbSize};{steamID}";
|
|
|
|
internal enum IdentityType
|
|
{
|
|
Invalid = 0,
|
|
IPAddress = 1,
|
|
GenericString = 2,
|
|
GenericBytes = 3,
|
|
SteamID = 16
|
|
}
|
|
}
|
|
} |