< Summary

Class:AvatarNamesHUD.AvatarNamesHUDController
Assembly:AvatarNamesHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/AvatarNamesHUD/AvatarNamesHUDController.cs
Covered lines:33
Uncovered lines:2
Coverable lines:35
Total lines:69
Line coverage:94.2% (33 of 35)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
AvatarNamesHUDController()0%110100%
CreateView()0%110100%
Initialize()0%440100%
OnToggleHudAction(...)0%110100%
OnOtherPlayersStatusAdded(...)0%330100%
OnOtherPlayersStatusRemoved(...)0%330100%
OnAvatarNamesVisibleChange(...)0%110100%
SetVisibility(...)0%110100%
SetViewVisibility(...)0%220100%
Dispose()0%220100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/AvatarNamesHUD/AvatarNamesHUDController.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using DCL;
 3using UnityEngine;
 4
 5namespace AvatarNamesHUD
 6{
 7    public class AvatarNamesHUDController : IHUD
 8    {
 09        private BaseDictionary<string, Player> otherPlayers => DataStore.i.player.otherPlayers;
 010        private BaseVariable<bool> avatarNamesVisible => DataStore.i.HUDs.avatarNamesVisible;
 11        internal InputAction_Trigger toggleHUDAction;
 12
 13        internal IAvatarNamesHUDView view;
 1014        internal readonly HashSet<string> trackingPlayers = new HashSet<string>();
 15
 116        internal virtual IAvatarNamesHUDView CreateView() { return AvatarNamesHUDView.CreateView(); }
 17
 18        public void Initialize()
 19        {
 1020            view = CreateView();
 1021            view?.Initialize();
 22
 1023            toggleHUDAction = Resources.Load<InputAction_Trigger>("ToggleAvatarNames");
 1024            toggleHUDAction.OnTriggered += OnToggleHudAction;
 1025            otherPlayers.OnAdded += OnOtherPlayersStatusAdded;
 1026            otherPlayers.OnRemoved += OnOtherPlayersStatusRemoved;
 1027            avatarNamesVisible.OnChange += OnAvatarNamesVisibleChange;
 1028            using var enumerator = otherPlayers.Get().GetEnumerator();
 1429            while (enumerator.MoveNext())
 30            {
 431                OnOtherPlayersStatusAdded(enumerator.Current.Key, enumerator.Current.Value);
 32            }
 1033            SetVisibility(false);
 2034        }
 2635        private void OnToggleHudAction(DCLAction_Trigger action) { SetVisibility(!avatarNamesVisible.Get()); }
 36
 37        internal void OnOtherPlayersStatusAdded(string userId, Player player)
 38        {
 1039            if (trackingPlayers.Contains(userId))
 240                return;
 41
 842            trackingPlayers.Add(userId);
 843            view?.TrackPlayer(player);
 844        }
 45
 46        internal void OnOtherPlayersStatusRemoved(string userId, Player player)
 47        {
 348            if (!trackingPlayers.Remove(userId))
 149                return;
 50
 251            view?.UntrackPlayer(userId);
 252        }
 53
 3654        internal void OnAvatarNamesVisibleChange(bool current, bool previous) { SetViewVisibility(current); }
 55
 4856        public void SetVisibility(bool visible) { avatarNamesVisible.Set(visible); }
 57
 3658        private void SetViewVisibility(bool visible) { view?.SetVisibility(visible); }
 59
 60        public void Dispose()
 61        {
 162            toggleHUDAction.OnTriggered -= OnToggleHudAction;
 163            otherPlayers.OnAdded -= OnOtherPlayersStatusAdded;
 164            otherPlayers.OnRemoved -= OnOtherPlayersStatusRemoved;
 165            avatarNamesVisible.OnChange -= OnAvatarNamesVisibleChange;
 166            view?.Dispose();
 167        }
 68    }
 69}