< Summary

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

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ECS7Plugin()0%2100%
Dispose()0%2100%
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
 021        public ECS7Plugin()
 22        {
 023            DataStore.i.ecs7.isEcs7Enabled = true;
 24
 025            sceneController = Environment.i.world.sceneController;
 26
 027            componentsFactory = new ECSComponentsFactory();
 028            componentsManager = new ECSComponentsManager(componentsFactory.componentBuilders);
 029            internalEcsComponents = new InternalECSComponents(componentsManager, componentsFactory);
 30
 031            crdtWriteSystem = new ComponentCrdtWriteSystem(Environment.i.world.state, sceneController, DataStore.i.rpcCo
 032            componentWriter = new ECSComponentWriter(crdtWriteSystem.WriteMessage);
 33
 034            componentsComposer = new ECS7ComponentsComposer(componentsFactory, componentWriter, internalEcsComponents);
 35
 036            SystemsContext systemsContext = new SystemsContext(componentWriter,
 37                internalEcsComponents,
 38                new ComponentGroups(componentsManager),
 39                (ECSComponent<PBOnPointerDown>)componentsManager.GetOrCreateComponent(ComponentID.ON_POINTER_DOWN),
 40                (ECSComponent<PBOnPointerUp>)componentsManager.GetOrCreateComponent(ComponentID.ON_POINTER_UP));
 41
 042            systemsController = new ECSSystemsController(Environment.i.platform.updateEventHandler, crdtWriteSystem.Late
 43
 044            canvasPainter = new CanvasPainter(DataStore.i.ecs7, CommonScriptableObjects.rendererState, Environment.i.pla
 45
 046            sceneController.OnNewSceneAdded += OnSceneAdded;
 047        }
 48
 49        public void Dispose()
 50        {
 051            componentsComposer.Dispose();
 052            crdtWriteSystem.Dispose();
 053            componentWriter.Dispose();
 054            systemsController.Dispose();
 055            internalEcsComponents.Dispose();
 56
 057            canvasPainter.Dispose();
 58
 059            sceneController.OnNewSceneAdded -= OnSceneAdded;
 060        }
 61
 62        private void OnSceneAdded(IParcelScene scene)
 63        {
 064            scene.crdtExecutor = new CRDTExecutor(scene, componentsManager);
 065        }
 66    }
 67}