< Summary

Class:DCL.Helpers.CrashPayloadPositionTracker
Assembly:CrashPayloadUtils
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/CrashPayloadUtils/CrashPayloadPositionTracker.cs
Covered lines:0
Uncovered lines:22
Coverable lines:22
Total lines:49
Line coverage:0% (0 of 22)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
CrashPayloadPositionTracker()0%2100%
Dispose()0%2100%
OnTeleport(...)0%6200%
OnPositionChange(...)0%12300%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/CrashPayloadUtils/CrashPayloadPositionTracker.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using UnityEngine;
 4
 5namespace DCL.Helpers
 6{
 7    public class CrashPayloadPositionTracker : IDisposable
 8    {
 09        public List<Vector3> movePositions = new List<Vector3>();
 010        public List<Vector3> teleportPositions = new List<Vector3>();
 11
 12        private float lastPositionUpdate;
 013        private float positionUpdateInterval = 30.0f;
 014        private int maxQueueSize = 50;
 015        private readonly DataStore_Player dataStorePlayer = DataStore.i.player;
 16
 017        public CrashPayloadPositionTracker()
 18        {
 019            dataStorePlayer.playerGridPosition.OnChange += OnPositionChange;
 020            dataStorePlayer.lastTeleportPosition.OnChange += OnTeleport;
 021        }
 22
 23        public void Dispose()
 24        {
 025            dataStorePlayer.playerGridPosition.OnChange -= OnPositionChange;
 026            dataStorePlayer.lastTeleportPosition.OnChange -= OnTeleport;
 027        }
 28
 29        private void OnTeleport(Vector3 current, Vector3 previous)
 30        {
 031            teleportPositions.Add(current);
 32
 033            if (teleportPositions.Count > maxQueueSize)
 034                teleportPositions.RemoveAt(0);
 035        }
 36
 37        private void OnPositionChange(Vector2Int current, Vector2Int previous)
 38        {
 039            if (lastPositionUpdate + positionUpdateInterval > Time.time)
 40            {
 041                movePositions.Add(dataStorePlayer.playerWorldPosition.Get());
 042                lastPositionUpdate = Time.time;
 43
 044                if (movePositions.Count > maxQueueSize)
 045                    movePositions.RemoveAt(0);
 46            }
 047        }
 48    }
 49}