< Summary

Class:InternalECSComponents
Assembly:ECS7Plugin.InternalECSComponents
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/InternalECSComponents/InternalECSComponents.cs
Covered lines:53
Uncovered lines:0
Coverable lines:53
Total lines:141
Line coverage:100% (53 of 53)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
InternalECSComponents(...)0%110100%
Dispose()0%110100%
WriteSystemUpdate()0%660100%

File(s)

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

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using DCL.ECS7.InternalComponents;
 4using DCL.ECSRuntime;
 5
 6public class InternalECSComponents : IDisposable, IInternalECSComponents
 7{
 768    internal readonly IList<InternalComponentWriteData> scheduledWrite = new List<InternalComponentWriteData>(50);
 9
 3210    public IInternalECSComponent<InternalTexturizable> texturizableComponent { get; }
 1011    public IInternalECSComponent<InternalMaterial> materialComponent { get; }
 712    public IInternalECSComponent<InternalVideoMaterial> videoMaterialComponent { get; }
 613    public IInternalECSComponent<InternalVideoPlayer> videoPlayerComponent { get; }
 12914    public IInternalECSComponent<InternalColliders> onPointerColliderComponent { get; }
 5315    public IInternalECSComponent<InternalColliders> physicColliderComponent { get; }
 6116    public IInternalECSComponent<InternalInputEventResults> inputEventResultsComponent { get; }
 4717    public IInternalECSComponent<InternalRenderers> renderersComponent { get; }
 718    public IInternalECSComponent<InternalVisibility> visibilityComponent { get; }
 17819    public IInternalECSComponent<InternalUiContainer> uiContainerComponent { get; }
 4420    public IInternalECSComponent<InternalUIInputResults> uiInputResultsComponent { get; }
 21
 7622    public InternalECSComponents(ECSComponentsManager componentsManager, ECSComponentsFactory componentsFactory)
 23    {
 7624        texturizableComponent = new InternalECSComponent<InternalTexturizable>(
 25            InternalECSComponentsId.TEXTURIZABLE,
 26            componentsManager,
 27            componentsFactory,
 1628            () => new RemoveOnConditionHandler<InternalTexturizable>(
 3929                () => texturizableComponent, model => model.renderers.Count == 0),
 30            scheduledWrite);
 31
 7632        materialComponent = new InternalECSComponent<InternalMaterial>(
 33            InternalECSComponentsId.MATERIAL,
 34            componentsManager,
 35            componentsFactory,
 36            null,
 37            scheduledWrite);
 38
 7639        onPointerColliderComponent = new InternalECSComponent<InternalColliders>(
 40            InternalECSComponentsId.COLLIDER_POINTER,
 41            componentsManager,
 42            componentsFactory,
 5743            () => new RemoveOnConditionHandler<InternalColliders>(
 12944                () => onPointerColliderComponent, model => model.colliders.Count == 0),
 45            scheduledWrite);
 46
 7647        physicColliderComponent = new InternalECSComponent<InternalColliders>(
 48            InternalECSComponentsId.COLLIDER_PHYSICAL,
 49            componentsManager,
 50            componentsFactory,
 2451            () => new RemoveOnConditionHandler<InternalColliders>(
 4852                () => physicColliderComponent, model => model.colliders.Count == 0),
 53            scheduledWrite);
 54
 7655        renderersComponent = new InternalECSComponent<InternalRenderers>(
 56            InternalECSComponentsId.RENDERERS,
 57            componentsManager,
 58            componentsFactory,
 2459            () => new RemoveOnConditionHandler<InternalRenderers>(
 7860                () => renderersComponent, model => model.renderers.Count == 0),
 61            scheduledWrite);
 62
 7663        visibilityComponent = new InternalECSComponent<InternalVisibility>(
 64            InternalECSComponentsId.VISIBILITY,
 65            componentsManager,
 66            componentsFactory,
 67            null,
 68            scheduledWrite);
 69
 7670        inputEventResultsComponent = new InternalECSComponent<InternalInputEventResults>(
 71            InternalECSComponentsId.INPUT_EVENTS_RESULT,
 72            componentsManager,
 73            componentsFactory,
 74            null,
 75            scheduledWrite);
 76
 7677        uiContainerComponent = new InternalECSComponent<InternalUiContainer>(
 78            InternalECSComponentsId.UI_CONTAINER,
 79            componentsManager,
 80            componentsFactory,
 6281            () => new UiContainerHandler(() => uiContainerComponent),
 82            scheduledWrite);
 83
 7684        uiInputResultsComponent = new InternalECSComponent<InternalUIInputResults>(
 85            InternalECSComponentsId.UI_INPUT_EVENTS_RESULT,
 86            componentsManager,
 87            componentsFactory,
 88            null,
 89            scheduledWrite
 90        );
 91
 7692        videoPlayerComponent = new InternalECSComponent<InternalVideoPlayer>(
 93            InternalECSComponentsId.VIDEO_PLAYER,
 94            componentsManager,
 95            componentsFactory,
 96            null,
 97            scheduledWrite);
 98
 7699        videoMaterialComponent = new InternalECSComponent<InternalVideoMaterial>(
 100            InternalECSComponentsId.VIDEO_MATERIAL,
 101            componentsManager,
 102            componentsFactory,
 103            null,
 104            scheduledWrite);
 76105    }
 106
 107    public void Dispose()
 108    {
 2109        scheduledWrite.Clear();
 110
 2111        texturizableComponent.Dispose();
 2112        materialComponent.Dispose();
 2113        onPointerColliderComponent.Dispose();
 2114        physicColliderComponent.Dispose();
 2115        renderersComponent.Dispose();
 2116        inputEventResultsComponent.Dispose();
 2117        videoPlayerComponent.Dispose();
 2118        videoMaterialComponent.Dispose();
 2119    }
 120
 121    public void WriteSystemUpdate()
 122    {
 130123        for (int i = 0; i < scheduledWrite.Count; i++)
 124        {
 35125            var writeData = scheduledWrite[i];
 35126            if (writeData.scene?.crdtExecutor == null)
 127                continue;
 128
 35129            InternalComponent data = writeData.data;
 35130            if (data != null)
 131            {
 33132                data._dirty = false;
 133            }
 134            else
 135            {
 2136                writeData.scene.crdtExecutor.ExecuteWithoutStoringState(writeData.entityId, writeData.componentId, null)
 137            }
 138        }
 30139        scheduledWrite.Clear();
 30140    }
 141}