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);
}
}