#if DEBUG && !UNITY_WP_8_1 && !UNITY_WSA using System.Collections.Generic; namespace FlyingWormConsole3.LiteNetLib { internal sealed class SequencedChannel { private ushort _localSequence; private ushort _remoteSequence; private readonly Queue _outgoingPackets; private readonly NetPeer _peer; public SequencedChannel(NetPeer peer) { _outgoingPackets = new Queue(); _peer = peer; } public void AddToQueue(NetPacket packet) { lock (_outgoingPackets) { _outgoingPackets.Enqueue(packet); } } public bool SendNextPacket() { NetPacket packet; lock (_outgoingPackets) { if (_outgoingPackets.Count == 0) return false; packet = _outgoingPackets.Dequeue(); } _localSequence++; packet.Sequence = _localSequence; _peer.SendRawData(packet); _peer.Recycle(packet); return true; } public void ProcessPacket(NetPacket packet) { if (NetUtils.RelativeSequenceNumber(packet.Sequence, _remoteSequence) > 0) { _remoteSequence = packet.Sequence; _peer.AddIncomingPacket(packet); } } } } #endif