< Summary

Class:BuildModeHUDView
Assembly:BuildModeHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/HUD/BuildModeHUD/Scripts/BuildModeHUDView.cs
Covered lines:63
Uncovered lines:14
Coverable lines:77
Total lines:182
Line coverage:81.8% (63 of 77)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Create()0%110100%
Initialize(...)0%110100%
OnDestroy()0%110100%
SetPublishBtnAvailability(...)0%110100%
RefreshCatalogAssetPack()0%110100%
RefreshCatalogContent()0%110100%
SetVisibilityOfCatalog(...)0%220100%
SetVisibilityOfSceneInfo(...)0%220100%
SetVisibilityOfControls(...)0%110100%
SetVisibilityOfExtraBtns(...)0%110100%
SetFirstPersonView()0%110100%
SetGodModeView()0%2100%
HideToolTip()0%110100%
SetActive(...)0%110100%
AnimatorShow(...)0%6200%
SetVisibilityOfInspector(...)0%220100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/HUD/BuildModeHUD/Scripts/BuildModeHUDView.cs

#LineLine coverage
 1using DCL.Builder;
 2using UnityEngine;
 3using UnityEngine.EventSystems;
 4using UnityEngine.Serialization;
 5using UnityEngine.UI;
 6
 7public interface IBuildModeHUDView
 8{
 9    GameObject viewGO { get; }
 10    SaveHUDView saveHud { get; }
 11    SceneCatalogView sceneCatalog { get; }
 12    EntityInformationView entityInformation { get; }
 13    bool isShowHideAnimatorVisible { get; }
 14
 15    void AnimatorShow(bool isVisible);
 16    void HideToolTip();
 17    void Initialize(BuildModeHUDInitializationModel controllers);
 18    void RefreshCatalogAssetPack();
 19    void RefreshCatalogContent();
 20    void SetActive(bool isActive);
 21    void SetFirstPersonView();
 22    void SetGodModeView();
 23    void SetPublishBtnAvailability(bool isAvailable, string feedbackMessage = "");
 24    void SetVisibilityOfCatalog(bool isVisible);
 25    void SetVisibilityOfControls(bool isVisible);
 26    void SetVisibilityOfExtraBtns(bool isVisible);
 27    void SetVisibilityOfSceneInfo(bool isVisible);
 28    void SetVisibilityOfInspector(bool isVisible);
 29}
 30
 31public class BuildModeHUDView : MonoBehaviour, IBuildModeHUDView
 32{
 033    public GameObject viewGO => !isDestroyed ? gameObject : null;
 034    public SaveHUDView saveHud  => saveView;
 035    public SceneCatalogView sceneCatalog => sceneCatalogView;
 036    public EntityInformationView entityInformation => entityInformationView;
 037    public bool isShowHideAnimatorVisible => showHideAnimator.isVisible;
 38
 39    [Header("Main Containers")]
 40    [SerializeField] internal GameObject firstPersonCanvasGO;
 41    [SerializeField] internal GameObject godModeCanvasGO;
 42
 43    [Header("Animator")]
 44    [SerializeField] internal ShowHideAnimator showHideAnimator;
 45
 46    [Header("UI Modules")]
 47    [SerializeField] internal TooltipView tooltipView;
 48    [SerializeField] internal TooltipView feedbackTtooltipView;
 49    [SerializeField] internal QuickBarView quickBarView;
 50    [SerializeField] internal SceneCatalogView sceneCatalogView;
 51    [SerializeField] internal EntityInformationView entityInformationView;
 52    [SerializeField] internal FirstPersonModeView firstPersonModeView;
 53    [SerializeField] internal ShortcutsView shortcutsView;
 54    [SerializeField] internal DragAndDropSceneObjectView dragAndDropSceneObjectView;
 55    [SerializeField] internal PublishBtnView publishBtnView;
 56    [SerializeField] internal InspectorBtnView inspectorBtnView;
 57    [SerializeField] internal CatalogBtnView catalogBtnView;
 58    [SerializeField] internal InspectorView inspectorView;
 59    [SerializeField] internal TopActionsButtonsView topActionsButtonsView;
 60    [SerializeField] internal BuildModeConfirmationModalView buildModeConfirmationModalView;
 61    [SerializeField] internal SaveHUDView saveView;
 62    [SerializeField] internal NewLandProjectDetailView newLandProjectDetailsView;
 63
 64    private bool isDestroyed = false;
 65    internal BuildModeHUDInitializationModel controllers;
 66
 67    private const string VIEW_PATH = "BuildModeHUD";
 68
 69    internal static BuildModeHUDView Create()
 70    {
 1971        var view = Instantiate(Resources.Load<GameObject>(VIEW_PATH)).GetComponent<BuildModeHUDView>();
 1972        view.gameObject.name = "_BuildModeHUD";
 73
 1974        return view;
 75    }
 76
 77    public void Initialize(BuildModeHUDInitializationModel controllers)
 78    {
 1979        this.controllers = controllers;
 1980        this.controllers.tooltipController.Initialize(tooltipView);
 1981        this.controllers.feedbackTooltipController.Initialize(feedbackTtooltipView);
 1982        this.controllers.sceneCatalogController.Initialize(sceneCatalogView, this.controllers.quickBarController);
 1983        this.controllers.quickBarController.Initialize(quickBarView, this.controllers.dragAndDropSceneObjectController);
 1984        this.controllers.entityInformationController.Initialize(entityInformationView);
 1985        this.controllers.firstPersonModeController.Initialize(firstPersonModeView, this.controllers.tooltipController);
 1986        this.controllers.shortcutsController.Initialize(shortcutsView);
 1987        this.controllers.dragAndDropSceneObjectController.Initialize(this.controllers.sceneCatalogController, dragAndDro
 1988        this.controllers.publishBtnController.Initialize(publishBtnView, this.controllers.tooltipController, this.contro
 1989        this.controllers.inspectorBtnController.Initialize(inspectorBtnView, this.controllers.tooltipController);
 1990        this.controllers.catalogBtnController.Initialize(catalogBtnView, this.controllers.tooltipController);
 1991        this.controllers.inspectorController.Initialize(inspectorView);
 1992        this.controllers.buildModeConfirmationModalController.Initialize(buildModeConfirmationModalView);
 1993        this.controllers.topActionsButtonsController.Initialize(topActionsButtonsView, this.controllers.tooltipControlle
 1994        this.controllers.saveHUDController.Initialize(saveView);
 1995        this.controllers.newProjectDetailsController.Initialize(newLandProjectDetailsView);
 1996    }
 97
 98    private void OnDestroy()
 99    {
 19100        isDestroyed = true;
 19101        controllers.tooltipController.Dispose();
 19102        controllers.quickBarController.Dispose();
 19103        controllers.sceneCatalogController.Dispose();
 19104        controllers.entityInformationController.Dispose();
 19105        controllers.firstPersonModeController.Dispose();
 19106        controllers.shortcutsController.Dispose();
 19107        controllers.dragAndDropSceneObjectController.Dispose();
 19108        controllers.publishBtnController.Dispose();
 19109        controllers.inspectorBtnController.Dispose();
 19110        controllers.catalogBtnController.Dispose();
 19111        controllers.inspectorController.Dispose();
 19112        controllers.buildModeConfirmationModalController.Dispose();
 19113        controllers.topActionsButtonsController.Dispose();
 19114        controllers.saveHUDController.Dispose();
 19115    }
 116
 117    public void SetPublishBtnAvailability(bool isAvailable, string feedbackMessage = "")
 118    {
 2119        controllers.publishBtnController.SetInteractable(isAvailable);
 2120        controllers.publishBtnController.SetFeedbackMessage(feedbackMessage);
 2121    }
 122
 2123    public void RefreshCatalogAssetPack() { controllers.sceneCatalogController.RefreshAssetPack(); }
 124
 2125    public void RefreshCatalogContent() { controllers.sceneCatalogController.RefreshCatalog(); }
 126
 127    public void SetVisibilityOfCatalog(bool isVisible)
 128    {
 2129        if (isVisible)
 1130            controllers.sceneCatalogController.OpenCatalog();
 131        else
 1132            controllers.sceneCatalogController.CloseCatalog();
 1133    }
 134
 135    public void SetVisibilityOfSceneInfo(bool isVisible)
 136    {
 2137        if (isVisible)
 1138            controllers.inspectorController.sceneLimitsController.Enable();
 139        else
 1140            controllers.inspectorController.sceneLimitsController.Disable();
 1141    }
 142
 4143    public void SetVisibilityOfControls(bool isVisible) { controllers.shortcutsController.SetActive(isVisible); }
 144
 4145    public void SetVisibilityOfExtraBtns(bool isVisible) { controllers.topActionsButtonsController.SetExtraActionsActive
 146
 147    public void SetFirstPersonView()
 148    {
 1149        firstPersonCanvasGO.SetActive(true);
 1150        godModeCanvasGO.SetActive(false);
 1151        saveView.SetFirstPersonView();
 1152        HideToolTip();
 1153    }
 154
 155    public void SetGodModeView()
 156    {
 0157        firstPersonCanvasGO.SetActive(false);
 0158        godModeCanvasGO.SetActive(true);
 0159        saveView.SetGodModeView();
 0160        HideToolTip();
 0161    }
 162
 4163    public void HideToolTip() { controllers.tooltipController.HideTooltip(); }
 164
 4165    public void SetActive(bool isActive) { gameObject.SetActive(isActive); }
 166
 167    public void AnimatorShow(bool isVisible)
 168    {
 0169        if (isVisible)
 0170            showHideAnimator.Show();
 171        else
 0172            showHideAnimator.Hide();
 0173    }
 174
 175    public void SetVisibilityOfInspector(bool isVisible)
 176    {
 2177        if (isVisible)
 1178            controllers.inspectorController.OpenEntityList();
 179        else
 1180            controllers.inspectorController.CloseList();
 1181    }
 182}