< Summary

Class:ExpressionsHUDView
Assembly:ExpressionsHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ExpressionsHUD/ExpressionsHUDView.cs
Covered lines:35
Uncovered lines:6
Coverable lines:41
Total lines:110
Line coverage:85.3% (35 of 41)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Create()0%110100%
OnOpenExpressions(...)0%4.594066.67%
Awake()0%220100%
Initialize(...)0%220100%
UpdateAvatarSprite(...)0%6200%
ToggleContent()0%220100%
ShowContent()0%110100%
HideContent()0%110100%
IsContentVisible()0%110100%
SetVisiblity(...)0%110100%
IsVisible()0%110100%
OnDestroy()0%110100%
CleanUp()0%220100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ExpressionsHUD/ExpressionsHUDView.cs

#LineLine coverage
 1using System;
 2using UnityEngine;
 3using UnityEngine.UI;
 4
 5public class ExpressionsHUDView : MonoBehaviour
 6{
 7    private const string PATH = "ExpressionsHUD";
 8
 9    public delegate void ExpressionClicked(string expressionId);
 10
 11    [Serializable]
 12    public class ButtonToExpression
 13    {
 14        public string expressionId;
 15        public Button_OnPointerDown button; // When the button is used to lock/unlock the mouse we have to use onPointer
 16    }
 17
 18    [SerializeField] internal ButtonToExpression[] buttonToExpressionMap;
 19    [SerializeField] internal Button showContentButton;
 20    [SerializeField] internal Button_OnPointerDown[] hideContentButtons;
 21    [SerializeField] internal RectTransform content;
 22    [SerializeField] internal InputAction_Trigger openExpressionsAction;
 23    [SerializeField] internal RawImage avatarPic;
 24
 725    public static ExpressionsHUDView Create() { return Instantiate(Resources.Load<GameObject>(PATH)).GetComponent<Expres
 26
 27    void OnOpenExpressions(DCLAction_Trigger trigger)
 28    {
 229        if (!IsVisible())
 030            return;
 31
 232        if (Input.GetKeyDown(KeyCode.Escape) && !IsContentVisible())
 033            return;
 34
 235        ToggleContent();
 236    }
 37
 38    private void Awake()
 39    {
 740        openExpressionsAction.OnTriggered += OnOpenExpressions;
 741        showContentButton.onClick.AddListener(ToggleContent);
 42
 4243        for (int i = 0; i < hideContentButtons.Length; i++)
 44        {
 1445            hideContentButtons[i].onPointerDown += HideContent;
 46        }
 747    }
 48
 49    internal void Initialize(ExpressionClicked clickedDelegate)
 50    {
 951        content.gameObject.SetActive(false);
 52
 14453        foreach (var buttonToExpression in buttonToExpressionMap)
 54        {
 6555            buttonToExpression.button.onPointerDown += () => clickedDelegate?.Invoke(buttonToExpression.expressionId);
 56        }
 957    }
 58
 59    public void UpdateAvatarSprite(Texture2D avatarTexture)
 60    {
 061        if (avatarTexture == null)
 062            return;
 63
 064        avatarPic.texture = avatarTexture;
 065    }
 66
 67    internal void ToggleContent()
 68    {
 569        if (IsContentVisible())
 70        {
 271            HideContent();
 272        }
 73        else
 74        {
 375            ShowContent();
 76        }
 377    }
 78
 79    internal void ShowContent()
 80    {
 381        content.gameObject.SetActive(true);
 382        DCL.Helpers.Utils.UnlockCursor();
 383        AudioScriptableObjects.dialogOpen.Play(true);
 384    }
 85
 86    internal void HideContent()
 87    {
 288        content.gameObject.SetActive(false);
 289        DCL.Helpers.Utils.LockCursor();
 290        AudioScriptableObjects.dialogClose.Play(true);
 291    }
 92
 793    public bool IsContentVisible() { return content.gameObject.activeSelf; }
 94
 295    public void SetVisiblity(bool visible) { gameObject.SetActive(visible); }
 96
 297    public bool IsVisible() { return gameObject.activeSelf; }
 98
 1499    public void OnDestroy() { CleanUp(); }
 100
 101    public void CleanUp()
 102    {
 14103        openExpressionsAction.OnTriggered -= OnOpenExpressions;
 104
 84105        for (int i = 0; i < hideContentButtons.Length; i++)
 106        {
 28107            hideContentButtons[i].onPointerDown -= HideContent;
 108        }
 14109    }
 110}