< Summary

Class:DCL.ECS7.InternalComponents.InternalCollidersExtensions
Assembly:ECS7Plugin.InternalECSComponents.Interfaces
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/InternalECSComponents/Interfaces/Extensions/InternalCollidersExtensions.cs
Covered lines:21
Uncovered lines:2
Coverable lines:23
Total lines:57
Line coverage:91.3% (21 of 23)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
AddCollider(...)0%6.076087.5%
HasCollider(...)0%3.043083.33%
RemoveCollider(...)0%550100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/InternalECSComponents/Interfaces/Extensions/InternalCollidersExtensions.cs

#LineLine coverage
 1using DCL.Controllers;
 2using DCL.Models;
 3using UnityEngine;
 4
 5namespace DCL.ECS7.InternalComponents
 6{
 7    public static class InternalCollidersExtensions
 8    {
 9        public static void AddCollider(this IInternalECSComponent<InternalColliders> colliderInternalComponent,
 10            IParcelScene scene, IDCLEntity entity, Collider collider)
 11        {
 5412            if (collider is null)
 013                return;
 14
 5415            if (colliderInternalComponent.HasCollider(scene, entity, collider))
 216                return;
 17
 5218            var model = colliderInternalComponent.GetFor(scene, entity)?.model ?? new InternalColliders();
 5219            model.colliders.Add(collider);
 5220            colliderInternalComponent.PutFor(scene, entity, model);
 5221        }
 22
 23        public static bool HasCollider(this IInternalECSComponent<InternalColliders> colliderInternalComponent,
 24            IParcelScene scene, IDCLEntity entity, Collider collider)
 25        {
 5426            if (collider is null)
 027                return false;
 28
 5429            var compData = colliderInternalComponent.GetFor(scene, entity);
 5430            if (compData != null)
 31            {
 1732                return compData.model.colliders.Contains(collider);
 33            }
 34
 3735            return false;
 36        }
 37
 38        public static bool RemoveCollider(this IInternalECSComponent<InternalColliders> colliderInternalComponent,
 39            IParcelScene scene, IDCLEntity entity, Collider collider)
 40        {
 6841            if (collider is null)
 1442                return false;
 43
 5444            var compData = colliderInternalComponent.GetFor(scene, entity);
 5445            if (compData == null)
 246                return false;
 47
 5248            bool ret = compData.model.colliders.Remove(collider);
 5249            if (ret && compData.model.colliders.Count == 0)
 50            {
 3751                colliderInternalComponent.RemoveFor(scene, entity);
 52            }
 53
 5254            return ret;
 55        }
 56    }
 57}