< Summary

Class:DCL.Components.DCLTransform
Assembly:DCL.Components.Transform
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Transform/DCLTransform.cs
Covered lines:23
Uncovered lines:18
Coverable lines:41
Total lines:100
Line coverage:56% (23 of 41)
Covered branches:0
Total branches:0
Covered methods:12
Total methods:21
Method coverage:57.1% (12 of 21)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Model()0%110100%
GetDataFromJSON(...)0%110100%
GetDataFromPb(...)0%30500%
DCLTransform()0%110100%
Cleanup()0%110100%
GetTransform()0%2100%
Initialize(...)0%110100%
UpdateFromJSON(...)0%110100%
UpdateFromPb(...)0%2100%
UpdateFromModel(...)0%2.012087.5%
ApplyChanges(...)0%2100%
RaiseOnAppliedChanges()0%2100%
IsValid()0%2100%
GetModel()0%2100%
GetClassId()0%2100%
UpdateOutOfBoundariesState(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Transform/DCLTransform.cs

#LineLine coverage
 1using System.Collections;
 2using DCL.Controllers;
 3using DCL.Helpers;
 4using DCL.Models;
 5using UnityEngine;
 6using Decentraland.Sdk.Ecs6;
 7using MainScripts.DCL.Components;
 8
 9namespace DCL.Components
 10{
 11    public class DCLTransform : IEntityComponent, IOutOfSceneBoundariesHandler
 12    {
 13        [System.Serializable]
 14        public class Model : BaseModel
 15        {
 5316            public Vector3 position = Vector3.zero;
 5317            public Quaternion rotation = Quaternion.identity;
 5318            public Vector3 scale = Vector3.one;
 19
 20            public override BaseModel GetDataFromJSON(string json)
 21            {
 22922                DCLTransformUtils.DecodeTransform(json, ref model);
 22923                return model;
 24            }
 25
 26            public override BaseModel GetDataFromPb(ComponentBodyPayload pbModel)
 27            {
 028                if (pbModel.PayloadCase != ComponentBodyPayload.PayloadOneofCase.Transform)
 029                    return Utils.SafeUnimplemented<DCLTransform, Model>(expected: ComponentBodyPayload.PayloadOneofCase.
 30
 031                var pb = new Model();
 032                if (pbModel.Transform.Position != null) pb.position = pbModel.Transform.Position.AsUnityVector3();
 033                if (pbModel.Transform.Scale != null) pb.scale = pbModel.Transform.Scale.AsUnityVector3();
 034                if (pbModel.Transform.Rotation != null) pb.rotation = pbModel.Transform.Rotation.AsUnityQuaternion();
 35
 036                return pb;
 37            }
 38
 39        }
 40
 141        private static Model model = new ();
 42
 13343        public void Cleanup() { }
 44
 1545        public string componentName => "Transform";
 17146        public IParcelScene scene { get; private set; }
 131647        public IDCLEntity entity { get; private set; }
 048        public Transform GetTransform() => null;
 49
 50        public void Initialize(IParcelScene scene, IDCLEntity entity)
 51        {
 17152            this.scene = scene;
 17153            this.entity = entity;
 17154        }
 55
 56        public void UpdateFromJSON(string json)
 57        {
 22958            model.GetDataFromJSON(json);
 22959            UpdateFromModel(model);
 22960        }
 61
 62
 63        public void UpdateFromPb(ComponentBodyPayload payload)
 64        {
 065            Model newModel = (Model)model.GetDataFromPb(payload);
 066            UpdateFromModel(newModel);
 067        }
 68
 69        public void UpdateFromModel(BaseModel model)
 70        {
 22971            DCLTransform.model = model as Model;
 72
 73            // AvatarShape interpolation hack: we don't apply avatars position and rotation directly to the transform
 74            // and those values are used for the interpolation.
 22975            if (entity.OnTransformChange != null)
 76            {
 077                entity.OnTransformChange.Invoke(DCLTransform.model.position, DCLTransform.model.rotation);
 78            }
 79            else
 80            {
 22981                entity.gameObject.transform.localPosition = DCLTransform.model.position;
 22982                entity.gameObject.transform.localRotation = DCLTransform.model.rotation;
 83            }
 84
 22985            entity.gameObject.transform.localScale = DCLTransform.model.scale;
 22986            entity.gameObject.transform.CapGlobalValuesToMax();
 22987        }
 88
 089        public IEnumerator ApplyChanges(BaseModel model) { return null; }
 90
 091        public void RaiseOnAppliedChanges() { }
 92
 093        public bool IsValid() => true;
 094        public BaseModel GetModel() => DCLTransform.model;
 095        public int GetClassId() => (int) CLASS_ID_COMPONENT.TRANSFORM;
 096        public void UpdateOutOfBoundariesState(bool enable) { }
 97
 98
 99    }
 100}