< Summary

Class:DCL.ECS7.ECS7Plugin
Assembly:ECS7Plugin
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ECS7Plugin.cs
Covered lines:22
Uncovered lines:2
Coverable lines:24
Total lines:66
Line coverage:91.6% (22 of 24)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ECS7Plugin()0%110100%
Dispose()0%110100%
OnSceneAdded(...)0%2100%

File(s)

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

#LineLine coverage
 1using DCL.Controllers;
 2using DCL.CRDT;
 3using DCL.ECSComponents;
 4using DCL.ECSRuntime;
 5
 6namespace DCL.ECS7
 7{
 8    public class ECS7Plugin : IPlugin
 9    {
 10        private readonly ComponentCrdtWriteSystem crdtWriteSystem;
 11        private readonly IECSComponentWriter componentWriter;
 12        private readonly ECS7ComponentsComposer componentsComposer;
 13        private readonly ECSSystemsController systemsController;
 14        private readonly ECSComponentsFactory componentsFactory;
 15        private readonly ECSComponentsManager componentsManager;
 16        private readonly InternalECSComponents internalEcsComponents;
 17        private readonly CanvasPainter canvasPainter;
 18
 19        private readonly ISceneController sceneController;
 20
 121        public ECS7Plugin()
 22        {
 123            DataStore.i.ecs7.isEcs7Enabled = true;
 24
 125            sceneController = Environment.i.world.sceneController;
 26
 127            componentsFactory = new ECSComponentsFactory();
 128            componentsManager = new ECSComponentsManager(componentsFactory.componentBuilders);
 129            internalEcsComponents = new InternalECSComponents(componentsManager, componentsFactory);
 30
 131            crdtWriteSystem = new ComponentCrdtWriteSystem(Environment.i.world.state, sceneController, DataStore.i.rpcCo
 132            componentWriter = new ECSComponentWriter(crdtWriteSystem.WriteMessage);
 33
 134            componentsComposer = new ECS7ComponentsComposer(componentsFactory, componentWriter, internalEcsComponents);
 35
 136            SystemsContext systemsContext = new SystemsContext(componentWriter,
 37                internalEcsComponents,
 38                new ComponentGroups(componentsManager),
 39                (ECSComponent<PBPointerEvents>)componentsManager.GetOrCreateComponent(ComponentID.POINTER_EVENTS));
 40
 141            systemsController = new ECSSystemsController(crdtWriteSystem.LateUpdate, systemsContext);
 42
 143            canvasPainter = new CanvasPainter(DataStore.i.ecs7, CommonScriptableObjects.rendererState, Environment.i.pla
 44
 145            sceneController.OnNewSceneAdded += OnSceneAdded;
 146        }
 47
 48        public void Dispose()
 49        {
 150            componentsComposer.Dispose();
 151            crdtWriteSystem.Dispose();
 152            componentWriter.Dispose();
 153            systemsController.Dispose();
 154            internalEcsComponents.Dispose();
 55
 156            canvasPainter.Dispose();
 57
 158            sceneController.OnNewSceneAdded -= OnSceneAdded;
 159        }
 60
 61        private void OnSceneAdded(IParcelScene scene)
 62        {
 063            scene.crdtExecutor = new CRDTExecutor(scene, componentsManager);
 064        }
 65    }
 66}