using Lidgren.Network; using Robust.Shared.Network; using Robust.Shared.Serialization; namespace Content.Shared._Sunrise.CartridgeLoader.Cartridges; /// /// Сообщение для отправки захваченного изображения с клиента на сервер /// public sealed class PdaPhotoCaptureMessage : NetMessage { public override MsgGroups MsgGroup => MsgGroups.String; /// /// Байты изображения (PNG или WebP) /// public byte[] ImageData { get; set; } = Array.Empty(); /// /// Ширина изображения в пикселях /// public int Width { get; set; } /// /// Высота изображения в пикселях /// public int Height { get; set; } /// /// Uid of the cartridge loader (PDA) that took the photo /// public NetEntity LoaderUid { get; set; } public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer) { LoaderUid = buffer.ReadNetEntity(); Width = buffer.ReadInt32(); Height = buffer.ReadInt32(); var dataLength = buffer.ReadInt32(); ImageData = buffer.ReadBytes(dataLength); } public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer) { buffer.Write(LoaderUid); buffer.Write(Width); buffer.Write(Height); buffer.Write(ImageData.Length); buffer.Write(ImageData); } }