1
0

MsgEuiState.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System.IO;
  2. using Lidgren.Network;
  3. using Robust.Shared.Network;
  4. using Robust.Shared.Serialization;
  5. namespace Content.Shared.Eui
  6. {
  7. public sealed class MsgEuiState : NetMessage
  8. {
  9. public override MsgGroups MsgGroup => MsgGroups.Command;
  10. public override NetDeliveryMethod DeliveryMethod => NetDeliveryMethod.ReliableOrdered;
  11. public uint Id;
  12. public EuiStateBase State = default!;
  13. public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer ser)
  14. {
  15. Id = buffer.ReadUInt32();
  16. var length = buffer.ReadVariableInt32();
  17. using var stream = new MemoryStream(length);
  18. buffer.ReadAlignedMemory(stream, length);
  19. State = ser.Deserialize<EuiStateBase>(stream);
  20. }
  21. public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer ser)
  22. {
  23. buffer.Write(Id);
  24. var stream = new MemoryStream();
  25. ser.Serialize(stream, State);
  26. var length = (int)stream.Length;
  27. buffer.WriteVariableInt32(length);
  28. buffer.Write(stream.GetBuffer().AsSpan(0, length));
  29. }
  30. }
  31. }