< 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        {
 2212            if (collider is null)
 013                return;
 14
 2215            if (colliderInternalComponent.HasCollider(scene, entity, collider))
 216                return;
 17
 2018            var model = colliderInternalComponent.GetFor(scene, entity)?.model ?? new InternalColliders();
 2019            model.colliders.Add(collider);
 2020            colliderInternalComponent.PutFor(scene, entity, model);
 2021        }
 22
 23        public static bool HasCollider(this IInternalECSComponent<InternalColliders> colliderInternalComponent,
 24            IParcelScene scene, IDCLEntity entity, Collider collider)
 25        {
 2226            if (collider is null)
 027                return false;
 28
 2229            var compData = colliderInternalComponent.GetFor(scene, entity);
 2230            if (compData != null)
 31            {
 232                return compData.model.colliders.Contains(collider);
 33            }
 34
 2035            return false;
 36        }
 37
 38        public static bool RemoveCollider(this IInternalECSComponent<InternalColliders> colliderInternalComponent,
 39            IParcelScene scene, IDCLEntity entity, Collider collider)
 40        {
 3641            if (collider is null)
 1442                return false;
 43
 2244            var compData = colliderInternalComponent.GetFor(scene, entity);
 2245            if (compData == null)
 246                return false;
 47
 2048            bool ret = compData.model.colliders.Remove(collider);
 2049            if (ret && compData.model.colliders.Count == 0)
 50            {
 2051                colliderInternalComponent.RemoveFor(scene, entity);
 52            }
 53
 2054            return ret;
 55        }
 56    }
 57}