using System.IO; using Lidgren.Network; using Robust.Shared.Network; using Robust.Shared.Serialization; using Robust.Shared.Utility; namespace Content.Shared.Mapping; public sealed class MappingFavoritesDataMessage : NetMessage { public override MsgGroups MsgGroup => MsgGroups.Command; public override NetDeliveryMethod DeliveryMethod => NetDeliveryMethod.ReliableUnordered; public List PrototypeIDs = default!; public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer) { var length = buffer.ReadVariableInt32(); using var stream = new MemoryStream(length); buffer.ReadAlignedMemory(stream, length); serializer.DeserializeDirect(stream, out PrototypeIDs); } public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer) { var stream = new MemoryStream(); serializer.SerializeDirect(stream, PrototypeIDs); buffer.WriteVariableInt32((int) stream.Length); buffer.Write(stream.AsSpan()); } }