< Summary

Class:MinimapHUDView
Assembly:MinimapHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs
Covered lines:42
Uncovered lines:13
Coverable lines:55
Total lines:168
Line coverage:76.3% (42 of 55)
Covered branches:0
Total branches:0
Covered methods:18
Total methods:22
Method coverage:81.8% (18 of 22)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Awake()0%110100%
Initialize(...)0%4.014092.31%
ReportScene()0%110100%
SetHomeScene(...)0%2100%
OnMouseLocked()0%2100%
Create(...)0%110100%
UpdateSetHomePanel(...)0%110100%
UpdateData(...)0%220100%
ToggleOptions()0%110100%
SetVisibility(...)0%6.65060%
SetCurrentFavoriteStatus(...)0%2100%
SetIsAPlace(...)0%2100%
ShowLocationCopiedToast()0%110100%
SetReportSceneButtonActive(...)0%110100%
OnDestroy()0%3.143075%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs

#LineLine coverage
 1using DCL;
 2using DCL.ContentModeration;
 3using DCLServices.MapRendererV2.ConsumerUtils;
 4using System;
 5using TMPro;
 6using UnityEngine;
 7using UnityEngine.UI;
 8
 9public class MinimapHUDView : MonoBehaviour
 10{
 11    public const string VIEW_PATH = "MinimapHUD";
 12    public const string VIEW_OBJECT_NAME = "_MinimapHUD";
 13
 14    public event Action<string, bool> OnFavoriteToggleClicked;
 15
 16    [Header("Information")] [SerializeField]
 17    private TextMeshProUGUI sceneNameText;
 18
 19    [SerializeField] private TextMeshProUGUI playerPositionText;
 20    [SerializeField] internal ShowHideAnimator mainShowHideAnimator;
 21    [SerializeField] private Button openNavmapButton;
 22
 23    [Header("Options")] [SerializeField] private Button optionsButton;
 24    [SerializeField] internal GameObject sceneOptionsPanel;
 25    [SerializeField] private ToggleComponentView toggleSceneUI;
 26    [SerializeField] internal Button reportSceneButton;
 27    [SerializeField] internal ContentModerationReportingButtonComponentView contentModerationReportButton;
 28    [SerializeField] internal ToggleComponentView setHomeScene;
 29    [SerializeField] internal FavoriteButtonComponentView favoriteToggle;
 30    [SerializeField] internal Image disableFavorite;
 31    [SerializeField] internal Button copyLocationButton;
 32    [SerializeField] internal ShowHideAnimator locationCopiedToast;
 33
 34    [Header("Map Renderer")]
 35    public RectTransform mapRenderContainer;
 36
 37    [field: SerializeField]
 1038    internal RawImage mapRendererTargetImage { get; private set; }
 39
 40    [field: SerializeField]
 4041    internal PixelPerfectMapRendererTextureProvider pixelPerfectMapRendererTextureProvider { get; private set; }
 42
 43    [field: SerializeField]
 2044    internal int mapRendererVisibleParcels { get; private set; }
 45
 2046    internal IContentModerationReportingButtonComponentView contentModerationButton => contentModerationReportButton;
 47
 48    public RectTransform mapViewport;
 49
 50    public InputAction_Trigger toggleNavMapAction;
 51    private IMouseCatcher mouseCatcher;
 52    private HUDCanvasCameraModeController hudCanvasCameraModeController;
 53    private MinimapHUDController controller;
 54
 55    public event Action OnCopyLocationRequested;
 56
 57    private void Awake()
 58    {
 1059        hudCanvasCameraModeController = new HUDCanvasCameraModeController(GetComponent<Canvas>(), DataStore.i.camera.hud
 1060        favoriteToggle.OnFavoriteChange += (uuid, isFavorite) => OnFavoriteToggleClicked?.Invoke(uuid, isFavorite);
 1061    }
 62
 63    public void Initialize(MinimapHUDController controller)
 64    {
 1065        this.controller = controller;
 1066        mouseCatcher = SceneReferences.i?.mouseCatcher;
 1067        gameObject.name = VIEW_OBJECT_NAME;
 1068        sceneOptionsPanel.SetActive(false);
 69
 1070        optionsButton.onClick.AddListener(controller.ToggleOptions);
 1071        toggleSceneUI.OnSelectedChanged += (isOn, id, name) => controller.ToggleSceneUI(isOn);
 1072        reportSceneButton.onClick.AddListener(ReportScene);
 1073        setHomeScene.OnSelectedChanged += (isOn, id, name) => SetHomeScene(isOn);
 1074        openNavmapButton.onClick.AddListener(toggleNavMapAction.RaiseOnTriggered);
 1175        copyLocationButton.onClick.AddListener(() => OnCopyLocationRequested?.Invoke());
 76
 1077        if (mouseCatcher != null)
 078            mouseCatcher.OnMouseLock += OnMouseLocked;
 79
 80        /*var renderer = MapRenderer.i;
 81
 82        if (renderer != null)
 83        {
 84            renderer.atlas.viewport = mapViewport;
 85            renderer.transform.SetParent(mapRenderContainer);
 86            renderer.transform.SetAsFirstSibling();
 87        }*/
 1088    }
 89
 90    private void ReportScene()
 91    {
 192        controller.ReportScene();
 193        controller.ToggleOptions();
 194    }
 95
 96    private void SetHomeScene(bool isOn)
 97    {
 098        controller.SetHomeScene(isOn);
 099    }
 100
 101    internal void OnMouseLocked()
 102    {
 0103        sceneOptionsPanel.SetActive(false);
 0104    }
 105
 106    internal static MinimapHUDView Create(MinimapHUDController controller)
 107    {
 10108        var view = Instantiate(Resources.Load<GameObject>(VIEW_PATH)).GetComponent<MinimapHUDView>();
 10109        view.Initialize(controller);
 10110        return view;
 111    }
 112
 113    internal void UpdateSetHomePanel(bool isHome)
 114    {
 10115        setHomeScene.SetIsOnWithoutNotify(isHome);
 10116    }
 117
 118    internal void UpdateData(MinimapHUDModel model)
 119    {
 15120        sceneNameText.text = string.IsNullOrEmpty(model.sceneName) ? "Unnamed" : model.sceneName;
 15121        playerPositionText.text = model.playerPosition;
 15122    }
 123
 124    public void ToggleOptions()
 125    {
 2126        sceneOptionsPanel.SetActive(!sceneOptionsPanel.activeSelf);
 2127    }
 128
 129    public void SetVisibility(bool visible)
 130    {
 11131        if (visible && !mainShowHideAnimator.isVisible)
 0132            mainShowHideAnimator.Show();
 11133        else if (!visible && mainShowHideAnimator.isVisible)
 0134            mainShowHideAnimator.Hide();
 11135    }
 136
 137    public void SetCurrentFavoriteStatus(string uuid, bool isFavorite)
 138    {
 0139        favoriteToggle.Configure(new FavoriteButtonComponentModel()
 140        {
 141            placeUUID = uuid,
 142            isFavorite = isFavorite
 143        });
 0144    }
 145
 146    public void SetIsAPlace(bool isAPlace)
 147    {
 0148        favoriteToggle.gameObject.SetActive(isAPlace);
 0149        disableFavorite.gameObject.SetActive(!isAPlace);
 0150    }
 151
 152    public void ShowLocationCopiedToast()
 153    {
 1154        locationCopiedToast.gameObject.SetActive(true);
 1155        locationCopiedToast.ShowDelayHide(3);
 1156    }
 157
 158    public void SetReportSceneButtonActive(bool isActive) =>
 10159        reportSceneButton.gameObject.SetActive(isActive);
 160
 161    private void OnDestroy()
 162    {
 10163        if (mouseCatcher != null)
 0164            mouseCatcher.OnMouseLock -= OnMouseLocked;
 165
 10166        hudCanvasCameraModeController?.Dispose();
 10167    }
 168}