public virtual void WriteToStreamDelta(Stream stream, ResourceExtractor previous) { if (previous == null) { ResourceExtractor.Serialize(stream, this); return; } ResourceExtractor.SerializeDelta(stream, this, previous); }
public static void SerializeDelta(Stream stream, MiningQuarry instance, MiningQuarry previous) { MemoryStream memoryStream = Pool.Get <MemoryStream>(); if (instance.extractor != null) { stream.WriteByte(10); memoryStream.SetLength((long)0); ResourceExtractor.SerializeDelta(memoryStream, instance.extractor, previous.extractor); uint length = (uint)memoryStream.Length; ProtocolParser.WriteUInt32(stream, length); stream.Write(memoryStream.GetBuffer(), 0, (int)length); } if (instance.staticType != previous.staticType) { stream.WriteByte(16); ProtocolParser.WriteUInt64(stream, (ulong)instance.staticType); } Pool.FreeMemoryStream(ref memoryStream); }