< Summary

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

Metrics

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

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
 3916        private TransformComponent entityTransformComponentModel = new TransformComponent();
 3917        private EntityPayload entityPayload = new EntityPayload();
 3918        private ModifyEntityComponentEvent modifyEntityComponentEvent = new ModifyEntityComponentEvent();
 3919        private EntitySingleComponentPayload entitySingleComponentPayload = new EntitySingleComponentPayload();
 20
 21        public void SendNewEntityToKernel(string sceneId, long entityId, ComponentPayload[] componentsPayload)
 22        {
 123            AddEntityEvent addEntityEvent = new AddEntityEvent();
 124            entityPayload.entityId = entityId;
 125            entityPayload.components = componentsPayload;
 26
 127            addEntityEvent.payload = entityPayload;
 28
 129            WebInterface.SceneEvent<AddEntityEvent> sceneEvent = new WebInterface.SceneEvent<AddEntityEvent>();
 130            sceneEvent.sceneId = sceneId;
 131            sceneEvent.eventType = BIWSettings.STATE_EVENT_NAME;
 132            sceneEvent.payload = addEntityEvent;
 33
 34            //Note(Adrian): We use Newtonsoft instead of JsonUtility because we need to deal with super classes, JsonUti
 135            string message = JsonConvert.SerializeObject(sceneEvent);
 136            WebInterface.BuilderInWorldMessage(BIWSettings.SCENE_EVENT_NAME, message);
 137        }
 38
 39        public void ChangeEntityComponent(EntitySingleComponentPayload payload, IParcelScene scene)
 40        {
 241            modifyEntityComponentEvent.payload = payload;
 42
 243            WebInterface.SceneEvent<ModifyEntityComponentEvent> sceneEvent = new WebInterface.SceneEvent<ModifyEntityCom
 244            sceneEvent.sceneId = scene.sceneData.id;
 245            sceneEvent.eventType = BIWSettings.STATE_EVENT_NAME;
 246            sceneEvent.payload = modifyEntityComponentEvent;
 47
 48            //Note (Adrian): We use Newtonsoft instead of JsonUtility because we need to deal with super classes, JsonUt
 249            string message = JsonConvert.SerializeObject(sceneEvent, Formatting.None, new JsonSerializerSettings
 50            {
 51                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
 52            });
 53
 254            WebInterface.BuilderInWorldMessage(BIWSettings.SCENE_EVENT_NAME, message);
 255        }
 56
 57        public void EntityTransformReport(IDCLEntity entity, IParcelScene scene) {
 58
 159            entitySingleComponentPayload.entityId = entity.entityId;
 160            entitySingleComponentPayload.componentId = (int) CLASS_ID_COMPONENT.TRANSFORM;
 61
 162            entityTransformComponentModel.position = WorldStateUtils.ConvertUnityToScenePosition(entity.gameObject.trans
 163            entityTransformComponentModel.rotation = new QuaternionRepresentation(entity.gameObject.transform.rotation);
 164            entityTransformComponentModel.scale = entity.gameObject.transform.lossyScale;
 65
 166            entitySingleComponentPayload.data = entityTransformComponentModel;
 67
 168            modifyEntityComponentEvent.payload = entitySingleComponentPayload;
 69
 170            WebInterface.SceneEvent<ModifyEntityComponentEvent> sceneEvent = new WebInterface.SceneEvent<ModifyEntityCom
 171            sceneEvent.sceneId = scene.sceneData.id;
 172            sceneEvent.eventType = BIWSettings.STATE_EVENT_NAME;
 173            sceneEvent.payload = modifyEntityComponentEvent;
 74
 75            //Note (Adrian): We use Newtonsoft instead of JsonUtility because we need to deal with super classes, JsonUt
 176            string message = JsonConvert.SerializeObject(sceneEvent);
 177            WebInterface.BuilderInWorldMessage(BIWSettings.SCENE_EVENT_NAME, message);
 178        }
 79
 80        public void RemoveEntityOnKernel(long entityId, IParcelScene scene)
 81        {
 282            RemoveEntityEvent removeEntityEvent = new RemoveEntityEvent();
 283            RemoveEntityPayload removeEntityPayLoad = new RemoveEntityPayload();
 284            removeEntityPayLoad.entityId = entityId;
 285            removeEntityEvent.payload = removeEntityPayLoad;
 86
 287            WebInterface.SendSceneEvent(scene.sceneData.id, BIWSettings.STATE_EVENT_NAME, removeEntityEvent);
 288        }
 89    }
 90}
 91