mirror of
https://github.com/NuclearPowered/Reactor.git
synced 2026-10-20 01:46:21 +00:00
31 lines
813 B
C#
31 lines
813 B
C#
using Hazel;
|
|
|
|
namespace Reactor.Networking;
|
|
|
|
public static class ReactorHeader
|
|
{
|
|
private const ulong MAGIC = 0x72656163746f72; // "reactor" in ascii, 7 bytes
|
|
|
|
public static int Size => sizeof(ulong);
|
|
|
|
public static void Read(MessageReader reader, out ulong magic, out byte version)
|
|
{
|
|
var value = reader.ReadUInt64();
|
|
magic = value >> 8;
|
|
version = (byte) (value & 0xFF);
|
|
}
|
|
|
|
public static bool Read(MessageReader reader)
|
|
{
|
|
Read(reader, out var magic, out var version);
|
|
return magic == MAGIC && version == (int) ReactorProtocolVersion.Latest;
|
|
}
|
|
|
|
public static void Write(MessageWriter writer)
|
|
{
|
|
var version = (byte) ReactorProtocolVersion.Latest;
|
|
var value = (MAGIC << 8) | version;
|
|
writer.Write(value);
|
|
}
|
|
}
|