< Summary

Class:DCLPlugins.RealmPlugin.JumpToHomeController
Assembly:DCL.Plugins.RealmsPlugin
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/RealmsPlugin/Utils/JumpToHomeController.cs
Covered lines:7
Uncovered lines:15
Coverable lines:22
Total lines:70
Line coverage:31.8% (7 of 22)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Start()0%110100%
SetVisibility(...)0%12300%
GoHome()0%2100%
GetMostPopulatedRealm()0%12300%
OnDestroy()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/RealmsPlugin/Utils/JumpToHomeController.cs

#LineLine coverage
 1using DCL;
 2using DCL.Interface;
 3using System.Linq;
 4using UnityEngine;
 5using UnityEngine.UI;
 6using Variables.RealmsInfo;
 7
 8namespace DCLPlugins.RealmPlugin
 9{
 10    /// <summary>
 11    /// Controller for the Jump to Home logic.
 12    /// Its used to chose the most populated realm to jump home to
 13    /// </summary>
 14    public class JumpToHomeController : MonoBehaviour
 15    {
 16        [SerializeField] private Button jumpButton;
 17        [SerializeField] private ShowHideAnimator showHideAnimator;
 18        [SerializeField] private RectTransform positionWithMiniMap;
 19        [SerializeField] private RectTransform positionWithoutMiniMap;
 20
 021        private BaseCollection<RealmModel> realms => DataStore.i.realm.realmsInfo;
 122        private BaseVariable<bool> jumpHomeButtonVisible => DataStore.i.HUDs.jumpHomeButtonVisible;
 023        private BaseVariable<bool> minimapVisible => DataStore.i.HUDs.minimapVisible;
 024        private BaseVariable<bool> exitedThroughButton => DataStore.i.common.exitedWorldThroughGoBackButton;
 25
 26        private RectTransform rectTransform;
 27
 28        private void Start()
 29        {
 130            rectTransform = jumpButton.GetComponent<RectTransform>();
 131            jumpButton.onClick.AddListener(GoHome);
 132            jumpHomeButtonVisible.OnChange += SetVisibility;
 133        }
 34
 35        private void SetVisibility(bool current, bool _)
 36        {
 037            if (current)
 38            {
 039                jumpButton.interactable = true;
 040                rectTransform.anchoredPosition = minimapVisible.Get() ? positionWithMiniMap.anchoredPosition : positionW
 041                showHideAnimator.Show();
 42            }
 43            else
 044                showHideAnimator.Hide();
 045        }
 46
 47        private void GoHome()
 48        {
 049            jumpButton.interactable = false;
 050            exitedThroughButton.Set(true);
 051            WebInterface.SendChatMessage(new ChatMessage
 52            {
 53                messageType = ChatMessage.Type.NONE,
 54                recipient = string.Empty,
 55                body = "/goto home",
 56            });
 057        }
 58
 59        private string GetMostPopulatedRealm()
 60        {
 061            var currentRealms = realms.Get().ToList();
 062            return currentRealms.OrderByDescending(e => e.usersCount).FirstOrDefault()?.serverName;
 63        }
 64
 65        private void OnDestroy()
 66        {
 1167            jumpButton.onClick.RemoveListener(GoHome);
 1168        }
 69    }
 70}