Asgard.Core.Network.Packets.DataObjectPacket.Serialize C# (CSharp) Method

Serialize() public method

public Serialize ( Bitstream msg ) : void
msg Bitstream
return void
        public override void Serialize(Bitstream msg)
        {
            msg.Write(SnapId);
            msg.Write(BaselineId);
            msg.Write((byte)Objects.Count);
            foreach(var obj in Objects)
            {
                var ownerType = obj.Object.GetType().GetTypeInfo();
                ushort objTypeId = ObjectMapper.LookupType(ownerType);
                msg.Write((byte)objTypeId);
                msg.WriteVariableUInt32(obj.Lookup);

                var dItem = DataLookupTable.Get(ownerType);

                DeltaWrapper baseline = null;
                if (_baselineState != null)
                {
                    _baselineState.TryGetValue(obj.Object.GetHashCode(), out baseline);
                }

                NetworkObject baselineObj = null;
                if (baseline != null)
                {
                    uint offset = BaselineId - baseline.Lookup;
                    if (offset < Byte.MaxValue && baseline.Object != null)
                    {
                        msg.Write(true);
                        msg.Write((byte)offset);
                        baselineObj = baseline.Object;
                    }
                }

                if (baselineObj == null)
                {
                    msg.Write(false);
                }

                WriteNetObject(dItem, msg, obj.Object, baselineObj);
            }
        }