| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- using Lidgren.Network;
- using Robust.Shared.Network;
- using Robust.Shared.Serialization;
- namespace Content.Shared.Voting
- {
- public sealed class MsgVoteData : NetMessage
- {
- public override MsgGroups MsgGroup => MsgGroups.Command;
- public int VoteId;
- public bool VoteActive;
- public string VoteTitle = string.Empty;
- public string VoteInitiator = string.Empty;
- public TimeSpan StartTime; // Server RealTime.
- public TimeSpan EndTime; // Server RealTime.
- public (ushort votes, string name)[] Options = default!;
- public bool IsYourVoteDirty;
- public byte? YourVote;
- public bool DisplayVotes;
- public int TargetEntity;
- public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer)
- {
- VoteId = buffer.ReadVariableInt32();
- VoteActive = buffer.ReadBoolean();
- buffer.ReadPadBits();
- if (!VoteActive)
- return;
- VoteTitle = buffer.ReadString();
- VoteInitiator = buffer.ReadString();
- StartTime = TimeSpan.FromTicks(buffer.ReadInt64());
- EndTime = TimeSpan.FromTicks(buffer.ReadInt64());
- DisplayVotes = buffer.ReadBoolean();
- TargetEntity = buffer.ReadVariableInt32();
- Options = new (ushort votes, string name)[buffer.ReadByte()];
- for (var i = 0; i < Options.Length; i++)
- {
- Options[i] = (buffer.ReadUInt16(), buffer.ReadString());
- }
- IsYourVoteDirty = buffer.ReadBoolean();
- if (IsYourVoteDirty)
- {
- YourVote = buffer.ReadBoolean() ? buffer.ReadByte() : null;
- }
- }
- public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer)
- {
- buffer.WriteVariableInt32(VoteId);
- buffer.Write(VoteActive);
- buffer.WritePadBits();
- if (!VoteActive)
- return;
- buffer.Write(VoteTitle);
- buffer.Write(VoteInitiator);
- buffer.Write(StartTime.Ticks);
- buffer.Write(EndTime.Ticks);
- buffer.Write(DisplayVotes);
- buffer.WriteVariableInt32(TargetEntity);
- buffer.Write((byte) Options.Length);
- foreach (var (votes, name) in Options)
- {
- buffer.Write(votes);
- buffer.Write(name);
- }
- buffer.Write(IsYourVoteDirty);
- if (IsYourVoteDirty)
- {
- buffer.Write(YourVote.HasValue);
- if (YourVote.HasValue)
- {
- buffer.Write(YourVote.Value);
- }
- }
- }
- public override NetDeliveryMethod DeliveryMethod => NetDeliveryMethod.ReliableOrdered;
- }
- }
|