< Summary

Class:DCL.Components.OnPointerHoverEvent
Assembly:DCL.Components.Events
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/UUIDEventComponentsPlugin/UUIDComponent/OnPointerHoverEvent.cs
Covered lines:26
Uncovered lines:9
Coverable lines:35
Total lines:100
Line coverage:74.2% (26 of 35)
Covered branches:0
Total branches:0
Covered methods:9
Total methods:11
Method coverage:81.8% (9 of 11)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Model()0%110100%
GetDataFromJSON(...)0%110100%
GetDataFromPb(...)0%30500%
Initialize(...)0%220100%
SetHoverState(...)0%110100%
SetEventColliders(...)0%110100%
IsVisible()0%5.125083.33%
IsAtHoverDistance(...)0%110100%
ApplyChanges(...)0%220100%
OnDestroy()0%220100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/UUIDEventComponentsPlugin/UUIDComponent/OnPointerHoverEvent.cs

#LineLine coverage
 1using System;
 2using System.Collections;
 3using DCL.Controllers;
 4using DCL.Helpers;
 5using DCL.Models;
 6using DCLPlugins.UUIDEventComponentsPlugin.UUIDComponent.Interfaces;
 7using Decentraland.Sdk.Ecs6;
 8
 9namespace DCL.Components
 10{
 11    public class OnPointerHoverEvent : UUIDComponent, IPointerEvent
 12    {
 13        [Serializable]
 14        public new class Model : UUIDComponent.Model
 15        {
 6016            public float distance = 10f;
 17
 18            public override BaseModel GetDataFromJSON(string json) =>
 2119                Utils.SafeFromJson<Model>(json);
 20
 21            public override BaseModel GetDataFromPb(ComponentBodyPayload pbModel)
 22            {
 023                if (pbModel.PayloadCase != ComponentBodyPayload.PayloadOneofCase.UuidCallback)
 024                    return Utils.SafeUnimplemented<OnPointerEvent, Model>(expected: ComponentBodyPayload.PayloadOneofCas
 25
 026                var pb = new Model();
 27
 028                if (pbModel.UuidCallback.HasUuid) pb.uuid = pbModel.UuidCallback.Uuid;
 029                if (pbModel.UuidCallback.HasType) pb.type = pbModel.UuidCallback.Type;
 030                if (pbModel.UuidCallback.HasDistance) pb.distance = pbModel.UuidCallback.Distance;
 31
 032                return pb;
 33            }
 34        }
 35
 36        internal OnPointerEventColliders pointerEventColliders;
 37
 038        protected override string uuidComponentName { get; }
 39
 40        public override void Initialize(IParcelScene scene, IDCLEntity entity)
 41        {
 2142            base.Initialize(scene, entity);
 43
 2144            if (model == null)
 2145                model = new Model();
 46
 2147            pointerEventColliders = new OnPointerEventColliders();
 2148            SetEventColliders(entity);
 49
 2150            entity.OnShapeUpdated -= SetEventColliders;
 2151            entity.OnShapeUpdated += SetEventColliders;
 2152        }
 53
 54        public virtual void SetHoverState(bool hoverState)
 55        {
 1056        }
 57
 58        void SetEventColliders(IDCLEntity entity)
 59        {
 3360            pointerEventColliders.Initialize(entity);
 3361        }
 62
 63        public bool IsVisible()
 64        {
 865            if (entity == null)
 066                return false;
 67
 868            bool isVisible = false;
 69
 870            if (entity.meshesInfo != null &&
 71                entity.meshesInfo.renderers != null &&
 72                entity.meshesInfo.renderers.Length > 0)
 73            {
 874                isVisible = entity.meshesInfo.renderers[0].enabled;
 75            }
 76
 877            return isVisible;
 78        }
 79
 80        public bool IsAtHoverDistance(float distance)
 81        {
 882            Model model = this.model as Model;
 883            return distance <= model.distance;
 84        }
 85
 86        public override IEnumerator ApplyChanges(BaseModel newModel)
 87        {
 2188            this.model = newModel ?? new Model();
 2189            return null;
 90        }
 91
 92        void OnDestroy()
 93        {
 2194            if (entity != null)
 2195                entity.OnShapeUpdated -= SetEventColliders;
 96
 2197            pointerEventColliders.Dispose();
 2198        }
 99    }
 100}