public bool MoveNext()
        {
            if (queue.IsEmpty)
            {
                return(false);
            }

            var candidate = queue.Dequeue();
            var fit       = field.Fits(candidate.Block);

            if (fit == Fit.False)
            {
                return(MoveNext());
            }
            else if (fit == Fit.True)
            {
                Enqueue(candidate, candidate.Others);
                return(NewMove(candidate) || MoveNext());
            }
            else /* if (fit == Fit.Maybe) */
            {
                Enqueue(candidate, candidate.Nexts);
                return(MoveNext());
            }
        }
 public unsafe void Dequeue_Item_Fail()
 {
     Assert.Throws <InvalidOperationException>(() =>
     {
         FixedQueue <TestStruct> sut = stackalloc TestStruct[1];
         sut.Dequeue();
     });
 }
        /// <summary>
        ///     Creates and stores a new <see cref="LagCompensationFrameData" /> using the current position and rotation data
        /// </summary>
        public void AddFrame()
        {
            if (frameKeys.Count == maxFrames)
            {
                frameData.Remove(frameKeys.Dequeue());
            }

            double    time         = NetworkTime.time;
            Transform objTransform = transform;

            frameData.Add(time, new LagCompensationFrameData(objTransform.position, objTransform.rotation));
            frameKeys.Enqueue(time);
        }
Exemple #4
0
        internal void AddFrame()
        {
            if (m_Framekeys.Count == m_MaxPoints)
            {
                m_FrameData.Remove(m_Framekeys.Dequeue());
            }

            m_FrameData.Add(NetworkManager.Singleton.NetworkTime, new TrackedPoint()
            {
                position = transform.position,
                rotation = transform.rotation
            });
            m_Framekeys.Enqueue(NetworkManager.Singleton.NetworkTime);
        }
Exemple #5
0
        internal void AddFrame()
        {
            if (Framekeys.Count == maxPoints)
            {
                FrameData.Remove(Framekeys.Dequeue());
            }

            FrameData.Add(NetworkingManager.singleton.NetworkTime, new TrackedPointData()
            {
                position = transform.position,
                rotation = transform.rotation
            });
            Framekeys.Enqueue(NetworkingManager.singleton.NetworkTime);
        }
Exemple #6
0
        internal void AddFrame()
        {
            if (Framekeys.Count == maxPoints)
            {
                FrameData.Remove(Framekeys.Dequeue());
            }

            FrameData.Add((float)NetworkTime.time, new TrackedPointData()
            {
                position = transform.position,
                rotation = transform.rotation
            });
            Framekeys.Enqueue((float)NetworkTime.time);
        }
        public unsafe void Wrapping_Success()
        {
            FixedQueue <TestStruct> sut = stackalloc TestStruct[1];

            for (var i = 0; i < 20; i++)
            {
                var expected = new TestStruct()
                {
                    X = i, Y = i
                };
                sut.Enqueue(expected);

                ref var actual = ref sut.Dequeue();

                Assert.AreEqual(expected.X, actual.X);
                Assert.AreEqual(expected.Y, actual.Y);
            }
        public unsafe void Dequeue_Item_Success()
        {
            var expected = new TestStruct()
            {
                X = 3, Y = 1
            };

            FixedQueue <TestStruct> sut = stackalloc TestStruct[1];

            sut.Enqueue(expected);

            var testStruct = sut.Dequeue();

            Assert.AreEqual(0, sut.Count);

            Assert.AreEqual(3, testStruct.X);
            Assert.AreEqual(1, testStruct.Y);
        }
Exemple #9
0
        internal static void StartTick(TickType type)
        {
            if (!isRunning)
            {
                return;
            }
            if (Ticks.Count == tickHistory)
            {
                Ticks.Dequeue();
            }

            ProfilerTick tick = new ProfilerTick()
            {
                Type    = type,
                Frame   = Time.frameCount,
                EventId = EventIdCounter
            };

            EventIdCounter++;
            Ticks.Enqueue(tick);
            CurrentTick = tick;
        }