using Lidgren.Network; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SRMultiplayer.Packets { [Packet(PacketType.WorldDecorizer)] public class PacketWorldDecorizer : Packet { public Dictionary Contents { get; set; } public Dictionary Settings { get; set; } public PacketWorldDecorizer() { } public PacketWorldDecorizer(NetIncomingMessage im) { Deserialize(im); } public override void Serialize(NetOutgoingMessage om) { base.Serialize(om); om.Write(Contents.Count); foreach(var content in Contents) { om.Write((ushort)content.Key); om.Write(content.Value); } om.Write(Settings.Count); foreach(var settings in Settings) { om.Write(settings.Key); om.Write(settings.Value); } } public override void Deserialize(NetIncomingMessage im) { base.Deserialize(im); Contents = new Dictionary(); int contentCount = im.ReadInt32(); for(int i = 0; i < contentCount; i++) { Contents.Add((Identifiable.Id)im.ReadUInt16(), im.ReadInt32()); } Settings = new Dictionary(); int settingsCount = im.ReadInt32(); for(int i = 0; i < settingsCount; i++) { Settings.Add(im.ReadString(), im.ReadUInt16()); } } } }