Files
OldThink/Content.Shared/_White/Reputation/ReputationNetMsg.cs

51 lines
1.3 KiB
C#

using System.IO;
using System.Text.Json.Serialization;
using Lidgren.Network;
using Robust.Shared.Network;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;
namespace Content.Shared._White.Reputation;
public sealed class ReputationNetMsg : NetMessage
{
public override MsgGroups MsgGroup => MsgGroups.Command;
public ReputationInfo? Info;
public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer)
{
var success = buffer.ReadBoolean();
buffer.ReadPadBits();
if (!success)
return;
var length = buffer.ReadVariableInt32();
using var stream = new MemoryStream();
buffer.ReadAlignedMemory(stream, length);
serializer.DeserializeDirect(stream, out Info);
}
public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer)
{
buffer.Write(Info != null);
buffer.WritePadBits();
if (Info == null)
return;
var stream = new MemoryStream();
serializer.SerializeDirect(stream, Info);
buffer.WriteVariableInt32((int) stream.Length);
buffer.Write(stream.AsSpan());
}
}
[Serializable, NetSerializable]
public sealed class ReputationInfo
{
[JsonPropertyName("value")]
public float Value { get; set; }
}