< Summary

Class:ECSSystems.GltfContainerLoadingStateSystem.GltfContainerLoadingStateSystem
Assembly:ECS7Plugin.Systems.GltfContainerLoadingStateSystem
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/Systems/GltfContainerLoadingStateSystem/GltfContainerLoadingStateSystem.cs
Covered lines:19
Uncovered lines:0
Coverable lines:19
Total lines:58
Line coverage:100% (19 of 19)
Covered branches:0
Total branches:0
Covered methods:2
Total methods:2
Method coverage:100% (2 of 2)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
GltfContainerLoadingStateSystem(...)0%110100%
Update()0%550100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/Systems/GltfContainerLoadingStateSystem/GltfContainerLoadingStateSystem.cs

#LineLine coverage
 1using DCL.Controllers;
 2using DCL.ECS7;
 3using DCL.ECS7.ComponentWrapper.Generic;
 4using DCL.ECS7.InternalComponents;
 5using DCL.ECSComponents;
 6using DCL.Models;
 7using System.Collections.Generic;
 8
 9namespace ECSSystems.GltfContainerLoadingStateSystem
 10{
 11    public class GltfContainerLoadingStateSystem
 12    {
 13        private readonly IInternalECSComponent<InternalGltfContainerLoadingState> gltfContainerLoadingStateComponent;
 14        private readonly IReadOnlyDictionary<int, ComponentWriter> componentsWriter;
 15        private readonly WrappedComponentPool<IWrappedComponent<PBGltfContainerLoadingState>> componentPool;
 16
 717        public GltfContainerLoadingStateSystem(IReadOnlyDictionary<int, ComponentWriter> componentsWriter,
 18            WrappedComponentPool<IWrappedComponent<PBGltfContainerLoadingState>> componentPool,
 19            IInternalECSComponent<InternalGltfContainerLoadingState> gltfContainerLoadingStateComponent)
 20        {
 721            this.componentsWriter = componentsWriter;
 722            this.gltfContainerLoadingStateComponent = gltfContainerLoadingStateComponent;
 723            this.componentPool = componentPool;
 724        }
 25
 26        public void Update()
 27        {
 628            var components = gltfContainerLoadingStateComponent.GetForAll();
 29
 2430            for (int i = 0; i < components.Count; i++)
 31            {
 632                var model = components[i].value.model;
 33
 634                if (!model.dirty)
 35                    continue;
 36
 637                IParcelScene scene = components[i].value.scene;
 638                IDCLEntity entity = components[i].value.entity;
 39
 640                if (!componentsWriter.TryGetValue(scene.sceneData.sceneNumber, out var writer))
 41                    continue;
 42
 643                if (model.GltfContainerRemoved)
 44                {
 145                    writer.Remove(entity.entityId, ComponentID.GLTF_CONTAINER_LOADING_STATE);
 46                }
 47                else
 48                {
 549                    var componentPooled = componentPool.Get();
 550                    var componentModel = componentPooled.WrappedComponent.Model;
 551                    componentModel.CurrentState = model.LoadingState;
 52
 553                    writer.Put(entity.entityId, ComponentID.GLTF_CONTAINER_LOADING_STATE, componentPooled);
 54                }
 55            }
 656        }
 57    }
 58}