< Summary

Class:ExtraActionsView
Assembly:BuildModeHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/BuildModeHUD/Scripts/GodMode/TopActionsButtons/ExtraActionsView.cs
Covered lines:36
Uncovered lines:0
Coverable lines:36
Total lines:113
Line coverage:100% (36 of 36)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Create()0%110100%
Awake()0%110100%
OnDestroy()0%110100%
SetActive(...)0%220100%
OnControlsClick(...)0%220100%
OnHideUIClick(...)0%220100%
OnTutorialClick()0%220100%
OnResetClick(...)0%220100%
OnResetCameraClick(...)0%220100%
SetResetButtonInteractable(...)0%330100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/BuildModeHUD/Scripts/GodMode/TopActionsButtons/ExtraActionsView.cs

#LineLine coverage
 1using System;
 2using TMPro;
 3using UnityEngine;
 4using UnityEngine.UI;
 5
 6public interface IExtraActionsView
 7{
 8    event Action OnControlsClicked,
 9                 OnHideUIClicked,
 10                 OnTutorialClicked,
 11                 OnResetClicked,
 12                 OnResetCameraClicked;
 13
 14    void OnControlsClick(DCLAction_Trigger action);
 15    void OnHideUIClick(DCLAction_Trigger action);
 16    void OnTutorialClick();
 17    void SetActive(bool isActive);
 18    void OnResetClick(DCLAction_Trigger action);
 19    void OnResetCameraClick(DCLAction_Trigger action);
 20    void SetResetButtonInteractable(bool isInteractable);
 21}
 22
 23public class ExtraActionsView : MonoBehaviour, IExtraActionsView
 24{
 25    public event Action OnControlsClicked,
 26                        OnHideUIClicked,
 27                        OnTutorialClicked,
 28                        OnResetClicked,
 29                        OnResetCameraClicked;
 30
 31    [Header("Buttons")]
 32    [SerializeField] internal Button hideUIBtn;
 33    [SerializeField] internal Button controlsBtn;
 34    [SerializeField] internal Button tutorialBtn;
 35    [SerializeField] internal Button resetBtn;
 36    [SerializeField] internal TMP_Text resetBtnText;
 37    [SerializeField] internal Button resetCameraBtn;
 38
 39    [Header("Input Actions")]
 40    [SerializeField] internal InputAction_Trigger toggleUIVisibilityInputAction;
 41    [SerializeField] internal InputAction_Trigger toggleControlsVisibilityInputAction;
 42    [SerializeField] internal InputAction_Trigger toggleResetInputAction;
 43    [SerializeField] internal InputAction_Trigger toggleResetCameraInputAction;
 44
 45    [Header("Other Configurations")]
 46    [SerializeField] internal Color disabledButtonTextColor;
 47
 48    private DCLAction_Trigger dummyActionTrigger = new DCLAction_Trigger();
 49    private Color originalResetBtnColor;
 50
 51    private const string VIEW_PATH = "GodMode/TopActionsButtons/ExtraActionsView";
 52
 53    internal static ExtraActionsView Create()
 54    {
 955        var view = Instantiate(Resources.Load<GameObject>(VIEW_PATH)).GetComponent<ExtraActionsView>();
 956        view.gameObject.name = "_ExtraActionsView";
 57
 958        return view;
 59    }
 60
 61    private void Awake()
 62    {
 7363        hideUIBtn.onClick.AddListener(() => OnHideUIClick(dummyActionTrigger));
 7364        controlsBtn.onClick.AddListener(() => OnControlsClick(dummyActionTrigger));
 7365        resetBtn.onClick.AddListener(() => OnResetClick(dummyActionTrigger));
 7366        resetCameraBtn.onClick.AddListener(() => OnResetCameraClick(dummyActionTrigger));
 7367        tutorialBtn.onClick.AddListener(OnTutorialClick);
 68
 7369        toggleUIVisibilityInputAction.OnTriggered += OnHideUIClick;
 7370        toggleControlsVisibilityInputAction.OnTriggered += OnControlsClick;
 7371        toggleResetInputAction.OnTriggered += OnResetClick;
 7372        toggleResetCameraInputAction.OnTriggered += OnResetCameraClick;
 73
 7374        originalResetBtnColor = resetBtnText.color;
 7375        SetResetButtonInteractable(true);
 7376    }
 77
 78    private void OnDestroy()
 79    {
 7380        hideUIBtn.onClick.RemoveAllListeners();
 7381        controlsBtn.onClick.RemoveAllListeners();
 7382        resetBtn.onClick.RemoveAllListeners();
 7383        resetCameraBtn.onClick.RemoveAllListeners();
 7384        tutorialBtn.onClick.RemoveListener(OnTutorialClick);
 85
 7386        toggleUIVisibilityInputAction.OnTriggered -= OnHideUIClick;
 7387        toggleControlsVisibilityInputAction.OnTriggered -= OnControlsClick;
 7388        toggleResetInputAction.OnTriggered -= OnResetClick;
 7389        toggleResetCameraInputAction.OnTriggered -= OnResetCameraClick;
 7390    }
 91
 92    public void SetActive(bool isActive)
 93    {
 2894        if (gameObject.activeSelf != isActive)
 2895            gameObject.SetActive(isActive);
 2896    }
 97
 298    public void OnControlsClick(DCLAction_Trigger action) { OnControlsClicked?.Invoke(); }
 99
 2100    public void OnHideUIClick(DCLAction_Trigger action) { OnHideUIClicked?.Invoke(); }
 101
 2102    public void OnTutorialClick() { OnTutorialClicked?.Invoke(); }
 103
 2104    public void OnResetClick(DCLAction_Trigger action) { OnResetClicked?.Invoke(); }
 105
 2106    public void OnResetCameraClick(DCLAction_Trigger action) { OnResetCameraClicked?.Invoke(); }
 107
 108    public void SetResetButtonInteractable(bool isInteractable)
 109    {
 101110        resetBtn.interactable = isInteractable;
 101111        resetBtnText.color = isInteractable ? originalResetBtnColor : disabledButtonTextColor;
 101112    }
 113}