< Summary

Class:DCL.Builder.LegacyComponentSender
Assembly:BIWBridge
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Scripts/BuilderInWorldBridge/LegacyComponentSender.cs
Covered lines:0
Uncovered lines:43
Coverable lines:43
Total lines:91
Line coverage:0% (0 of 43)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
LegacyComponentSender()0%2100%
SendNewEntityToKernel(...)0%2100%
ChangeEntityComponent(...)0%2100%
EntityTransformReport(...)0%2100%
RemoveEntityOnKernel(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Scripts/BuilderInWorldBridge/LegacyComponentSender.cs

#LineLine coverage
 1using System.Collections;
 2using System.Collections.Generic;
 3using DCL.Configuration;
 4using DCL.Controllers;
 5using DCL.Interface;
 6using DCL.Models;
 7using Newtonsoft.Json;
 8using UnityEngine;
 9using static ProtocolV2;
 10
 11namespace DCL.Builder
 12{
 13    public class LegacyComponentSender : IComponentSendHandler
 14    {
 15        //This is done for optimization purposes, recreating new objects can increase garbage collection
 016        private TransformComponent entityTransformComponentModel = new TransformComponent();
 017        private EntityPayload entityPayload = new EntityPayload();
 018        private ModifyEntityComponentEvent modifyEntityComponentEvent = new ModifyEntityComponentEvent();
 019        private EntitySingleComponentPayload entitySingleComponentPayload = new EntitySingleComponentPayload();
 20
 21        public void SendNewEntityToKernel(int sceneNumber, long entityId, ComponentPayload[] componentsPayload)
 22        {
 023            AddEntityEvent addEntityEvent = new AddEntityEvent();
 024            entityPayload.entityId = entityId;
 025            entityPayload.components = componentsPayload;
 26
 027            addEntityEvent.payload = entityPayload;
 28
 029            WebInterface.SceneEvent<AddEntityEvent> sceneEvent = new WebInterface.SceneEvent<AddEntityEvent>();
 030            sceneEvent.sceneNumber = sceneNumber;
 031            sceneEvent.eventType = BIWSettings.STATE_EVENT_NAME;
 032            sceneEvent.payload = addEntityEvent;
 33
 34            //Note(Adrian): We use Newtonsoft instead of JsonUtility because we need to deal with super classes, JsonUti
 035            string message = JsonConvert.SerializeObject(sceneEvent);
 036            WebInterface.BuilderInWorldMessage(BIWSettings.SCENE_EVENT_NAME, message);
 037        }
 38
 39        public void ChangeEntityComponent(EntitySingleComponentPayload payload, IParcelScene scene)
 40        {
 041            modifyEntityComponentEvent.payload = payload;
 42
 043            WebInterface.SceneEvent<ModifyEntityComponentEvent> sceneEvent = new WebInterface.SceneEvent<ModifyEntityCom
 044            sceneEvent.sceneNumber = scene.sceneData.sceneNumber;
 045            sceneEvent.eventType = BIWSettings.STATE_EVENT_NAME;
 046            sceneEvent.payload = modifyEntityComponentEvent;
 47
 48            //Note (Adrian): We use Newtonsoft instead of JsonUtility because we need to deal with super classes, JsonUt
 049            string message = JsonConvert.SerializeObject(sceneEvent, Formatting.None, new JsonSerializerSettings
 50            {
 51                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
 52            });
 53
 054            WebInterface.BuilderInWorldMessage(BIWSettings.SCENE_EVENT_NAME, message);
 055        }
 56
 57        public void EntityTransformReport(IDCLEntity entity, IParcelScene scene) {
 58
 059            entitySingleComponentPayload.entityId = entity.entityId;
 060            entitySingleComponentPayload.componentId = (int) CLASS_ID_COMPONENT.TRANSFORM;
 61
 062            entityTransformComponentModel.position = WorldStateUtils.ConvertUnityToScenePosition(entity.gameObject.trans
 063            entityTransformComponentModel.rotation = new QuaternionRepresentation(entity.gameObject.transform.rotation);
 064            entityTransformComponentModel.scale = entity.gameObject.transform.lossyScale;
 65
 066            entitySingleComponentPayload.data = entityTransformComponentModel;
 67
 068            modifyEntityComponentEvent.payload = entitySingleComponentPayload;
 69
 070            WebInterface.SceneEvent<ModifyEntityComponentEvent> sceneEvent = new WebInterface.SceneEvent<ModifyEntityCom
 071            sceneEvent.sceneNumber = scene.sceneData.sceneNumber;
 072            sceneEvent.eventType = BIWSettings.STATE_EVENT_NAME;
 073            sceneEvent.payload = modifyEntityComponentEvent;
 74
 75            //Note (Adrian): We use Newtonsoft instead of JsonUtility because we need to deal with super classes, JsonUt
 076            string message = JsonConvert.SerializeObject(sceneEvent);
 077            WebInterface.BuilderInWorldMessage(BIWSettings.SCENE_EVENT_NAME, message);
 078        }
 79
 80        public void RemoveEntityOnKernel(long entityId, IParcelScene scene)
 81        {
 082            RemoveEntityEvent removeEntityEvent = new RemoveEntityEvent();
 083            RemoveEntityPayload removeEntityPayLoad = new RemoveEntityPayload();
 084            removeEntityPayLoad.entityId = entityId;
 085            removeEntityEvent.payload = removeEntityPayLoad;
 86
 087            WebInterface.SendSceneEvent(scene.sceneData.sceneNumber, BIWSettings.STATE_EVENT_NAME, removeEntityEvent);
 088        }
 89    }
 90}
 91