< Summary

Class:ExploreHUDController
Assembly:ExploreHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ExploreHUD/ExploreHUDController.cs
Covered lines:41
Uncovered lines:15
Coverable lines:56
Total lines:127
Line coverage:73.2% (41 of 56)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ExploreHUDController()0%110100%
Initialize(...)0%110100%
SetVisibility(...)0%9.029093.75%
Dispose()0%330100%
OnToggleActionTriggered(...)0%330100%
OnJumpIn(...)0%12300%
GoToMagic()0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ExploreHUD/ExploreHUDController.cs

#LineLine coverage
 1using UnityEngine;
 2using System;
 3using DCL.Helpers;
 4using DCL.Interface;
 5
 6public class ExploreHUDController : IHUD
 7{
 8    internal static bool isTest = false;
 9
 10    internal ExploreHUDView view;
 11    internal InputAction_Trigger toggleExploreTrigger;
 12
 13    FriendTrackerController friendsController;
 14
 15    public event Action OnToggleTriggered;
 16    public event Action OnOpen;
 17    public event Action OnClose;
 18
 419    public ExploreHUDController()
 20    {
 421        view = UnityEngine.Object.Instantiate(Resources.Load<GameObject>("ExploreHUD")).GetComponent<ExploreHUDView>();
 422        view.name = "_ExploreHUD";
 423        view.popup.gameObject.SetActive(false);
 24
 425        toggleExploreTrigger = Resources.Load<InputAction_Trigger>("ToggleExploreHud");
 426        toggleExploreTrigger.OnTriggered += OnToggleActionTriggered;
 27
 428        view.OnCloseButtonPressed += () =>
 29        {
 030            if (view.IsVisible())
 31            {
 032                toggleExploreTrigger.RaiseOnTriggered();
 33            }
 034        };
 35
 436        view.gotoMagicButton.OnGotoMagicPressed += GoToMagic;
 437        view.togglePopupButton.onPointerDown += () => toggleExploreTrigger.RaiseOnTriggered();
 438        HotSceneCellView.OnJumpIn += OnJumpIn;
 439    }
 40
 41    public void Initialize(IFriendsController friendsController)
 42    {
 443        this.friendsController = new FriendTrackerController(friendsController, view.friendColors);
 44
 445        view.Initialize(this.friendsController);
 446        view.togglePopupButton.gameObject.SetActive(false);
 447    }
 48
 49    public void SetVisibility(bool visible)
 50    {
 451        if (view == null)
 52        {
 053            return;
 54        }
 55
 456        if (visible && !view.IsActive())
 57        {
 358            Utils.UnlockCursor();
 359            view.RefreshData();
 360            OnOpen?.Invoke();
 161        }
 162        else if (!visible && view.IsActive())
 63        {
 164            OnClose?.Invoke();
 65        }
 66
 467        view.SetVisibility(visible);
 68
 469        if (visible)
 70        {
 371            AudioScriptableObjects.dialogOpen.Play(true);
 372            AudioScriptableObjects.listItemAppear.ResetPitch();
 373        }
 74        else
 175            AudioScriptableObjects.dialogClose.Play(true);
 176    }
 77
 78    public void Dispose()
 79    {
 1280        friendsController?.Dispose();
 81
 1282        toggleExploreTrigger.OnTriggered -= OnToggleActionTriggered;
 1283        HotSceneCellView.OnJumpIn -= OnJumpIn;
 84
 1285        if (view != null)
 86        {
 487            view.gotoMagicButton.OnGotoMagicPressed -= GoToMagic;
 488            GameObject.Destroy(view.gameObject);
 89        }
 1290    }
 91
 92    void OnToggleActionTriggered(DCLAction_Trigger action)
 93    {
 194        if (view)
 95        {
 196            SetVisibility(!view.IsVisible());
 197            OnToggleTriggered?.Invoke();
 98        }
 199    }
 100
 101    void OnJumpIn(Vector2Int coords, string serverName, string layerName)
 102    {
 0103        if (view.IsVisible())
 104        {
 0105            toggleExploreTrigger.RaiseOnTriggered();
 106        }
 107
 0108        if (string.IsNullOrEmpty(serverName))
 109        {
 0110            WebInterface.GoTo(coords.x, coords.y);
 0111        }
 112        else
 113        {
 0114            WebInterface.JumpIn(coords.x, coords.y, serverName, layerName);
 115        }
 0116    }
 117
 118    void GoToMagic()
 119    {
 0120        if (view.IsVisible())
 121        {
 0122            toggleExploreTrigger.RaiseOnTriggered();
 123        }
 124
 0125        WebInterface.GoToMagic();
 0126    }
 127}