< Summary

Class:ECSSystems.VideoPlayerSystem.ECSVideoPlayerSystem
Assembly:ECS7Plugin.Systems.VideoPlayer
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/Systems/VideoPlayerSystem/ECSVideoPlayerSystem.cs
Covered lines:25
Uncovered lines:0
Coverable lines:25
Total lines:65
Line coverage:100% (25 of 25)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ECSVideoPlayerSystem(...)0%110100%
Update()0%770100%
IsMaterialAssigned(...)0%110100%

File(s)

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

#LineLine coverage
 1using DCL.ECS7.InternalComponents;
 2using System.Linq;
 3
 4namespace ECSSystems.VideoPlayerSystem
 5{
 6    public class ECSVideoPlayerSystem
 7    {
 8        public readonly IInternalECSComponent<InternalVideoPlayer> videoPlayerComponent;
 9        public readonly IInternalECSComponent<InternalVideoMaterial> videoMaterialComponent;
 10
 11
 312        public ECSVideoPlayerSystem(
 13            IInternalECSComponent<InternalVideoPlayer> videoPlayerComponent,
 14            IInternalECSComponent<InternalVideoMaterial> videoMaterialComponent)
 15        {
 316            this.videoPlayerComponent = videoPlayerComponent;
 317            this.videoMaterialComponent = videoMaterialComponent;
 318        }
 19
 20        public void Update()
 21        {
 1422            var playerComponents = videoPlayerComponent.GetForAll();
 23
 3024            for (int i = 0; i < playerComponents.Count; ++i)
 25            {
 126                var playerComponentData = playerComponents[i].value;
 127                var playerModel = playerComponentData.model;
 28
 129                playerModel.videoPlayer.Update();
 30            }
 31
 1432            var allMaterialComponent = videoMaterialComponent.GetForAll();
 3433            for (int i = allMaterialComponent.Count - 1; i >= 0; --i)
 34            {
 335                var materialComponentData = allMaterialComponent[i].value;
 336                var model = materialComponentData.model;
 337                var texturesData = model.videoTextureDatas;
 38
 1239                for (int j = texturesData.Count - 1; j >= 0; --j)
 40                {
 341                    var textureData = texturesData[j];
 342                    var playerComponent = videoPlayerComponent.GetFor(materialComponentData.scene, textureData.videoId);
 43
 344                    if (playerComponent != null)
 45                    {
 246                        var playerModel = playerComponent.model;
 247                        var videoTexture = playerModel.videoPlayer.texture;
 48
 249                        if (!IsMaterialAssigned(playerModel, model, textureData.textureType) && videoTexture != null)
 50                        {
 251                            model.material.SetTexture(textureData.textureType, videoTexture);
 252                            playerModel.assignedMaterials.Add(
 53                                new InternalVideoPlayer.MaterialAssigned(model.material, textureData.textureType));
 54                        }
 55                    }
 56                }
 57            }
 1458        }
 59
 60        private static bool IsMaterialAssigned(InternalVideoPlayer player, InternalVideoMaterial videoMaterial, int text
 61        {
 362            return player.assignedMaterials.Any(data => data.material == videoMaterial.material && data.textureType == t
 63        }
 64    }
 65}