< Summary

Class:DCL.MapGlobalUsersPositionMarkerController
Assembly:GlobalUsersPositionMarker
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/MapRenderer/GlobalUsersPositionMarker/MapGlobalUsersPositionMarkerController.cs
Covered lines:0
Uncovered lines:32
Coverable lines:32
Total lines:93
Line coverage:0% (0 of 32)
Covered branches:0
Total branches:0
Covered methods:0
Total methods:6
Method coverage:0% (0 of 6)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
MapGlobalUsersPositionMarkerController(...)0%2100%
SetUpdateMode(...)0%2100%
Dispose()0%2100%
OnScenesFetched(...)0%2100%
OnPlayerCoordsChanged(...)0%2100%
OnRenderStateChanged(...)0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/MapRenderer/GlobalUsersPositionMarker/MapGlobalUsersPositionMarkerController.cs

#LineLine coverage
 1using MainScripts.DCL.Controllers.HotScenes;
 2using System;
 3using System.Collections.Generic;
 4using UnityEngine;
 5
 6namespace DCL
 7{
 8    [Obsolete("MapRenderer")]
 9    public class MapGlobalUsersPositionMarkerController : IDisposable
 10    {
 11        private const float UPDATE_INTERVAL_INITIAL = 10f;
 12        private const float UPDATE_INTERVAL_FOREGROUND = 60f;
 13        private const float UPDATE_INTERVAL_BACKGROUND = 5 * 60f;
 14
 15        private const int MAX_MARKERS = 100;
 16
 17        private const int COMMS_RADIUS_THRESHOLD = 2;
 18
 19        public enum UpdateMode
 20        {
 21            FOREGROUND,
 22            BACKGROUND
 23        }
 24
 25        FetchScenesHandler fetchScenesHandler;
 26        MarkersHandler markersHandler;
 27        UserPositionHandler userPositionHandler;
 28        Transform markersContainer;
 29
 030        int commsRadius = 4;
 31
 32        /// <summary>
 33        /// Constructor
 34        /// </summary>
 35        /// <param name="markerPrefab">prefab for markers</param>
 36        /// <param name="overlayContainer">parent for markers</param>
 37        /// <param name="coordToMapPosFunc">function to transform coords to map position</param>
 038        public MapGlobalUsersPositionMarkerController(UserMarkerObject markerPrefab, Transform overlayContainer, Func<Ve
 39        {
 040            fetchScenesHandler = new FetchScenesHandler(UPDATE_INTERVAL_INITIAL, UPDATE_INTERVAL_FOREGROUND, UPDATE_INTE
 041            markersHandler = new MarkersHandler(markerPrefab, overlayContainer, MAX_MARKERS, coordToMapPosFunc);
 042            userPositionHandler = new UserPositionHandler();
 043            markersContainer = overlayContainer;
 44
 045            fetchScenesHandler.OnScenesFetched += OnScenesFetched;
 046            userPositionHandler.OnPlayerCoordsChanged += OnPlayerCoordsChanged;
 047            CommonScriptableObjects.rendererState.OnChange += OnRenderStateChanged;
 48
 049            KernelConfig.i.EnsureConfigInitialized()
 50                        .Then(config =>
 51                        {
 052                            commsRadius = (int) config.comms.commRadius + COMMS_RADIUS_THRESHOLD;
 053                            OnPlayerCoordsChanged(userPositionHandler.playerCoords);
 054                        });
 055            OnRenderStateChanged(CommonScriptableObjects.rendererState.Get(), false);
 056        }
 57
 58        /// <summary>
 59        /// Set update mode. Scene's fetch intervals will smaller when updating in FOREGROUND than when updating in BACK
 60        /// </summary>
 61        /// <param name="updateMode">update mode</param>
 62        public void SetUpdateMode(UpdateMode updateMode)
 63        {
 064            fetchScenesHandler.SetUpdateMode(updateMode);
 065            markersContainer.gameObject.SetActive(updateMode == UpdateMode.FOREGROUND);
 066        }
 67
 68        public void Dispose()
 69        {
 070            fetchScenesHandler.OnScenesFetched -= OnScenesFetched;
 071            userPositionHandler.OnPlayerCoordsChanged -= OnPlayerCoordsChanged;
 072            CommonScriptableObjects.rendererState.OnChange -= OnRenderStateChanged;
 73
 074            fetchScenesHandler.Dispose();
 075            markersHandler.Dispose();
 076            userPositionHandler.Dispose();
 077        }
 78
 079        private void OnScenesFetched(List<IHotScenesController.HotSceneInfo> sceneList) { markersHandler.SetMarkers(scen
 80
 081        private void OnPlayerCoordsChanged(Vector2Int coords) { markersHandler.SetExclusionArea(coords, commsRadius); }
 82
 83        private void OnRenderStateChanged(bool current, bool prev)
 84        {
 085            if (!current)
 086                return;
 87
 88            // NOTE: we start fetching scenes after the renderer is activated for the first time
 089            CommonScriptableObjects.rendererState.OnChange -= OnRenderStateChanged;
 090            fetchScenesHandler.Init();
 091        }
 92    }
 93}