< Summary

Class:ParticlesOnAvatarVisualCue
Assembly:AvatarShape
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Avatar/ParticlesOnAvatarVisualCue.cs
Covered lines:13
Uncovered lines:8
Coverable lines:21
Total lines:49
Line coverage:61.9% (13 of 21)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ParticlesOnAvatarVisualCue()0%110100%
Awake()0%110100%
OnVisualCue(...)0%15.286036.36%
OnDestroy()0%2.062075%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Avatar/ParticlesOnAvatarVisualCue.cs

#LineLine coverage
 1using DCL;
 2using UnityEngine;
 3
 4[RequireComponent(typeof(AvatarRenderer))]
 5public class ParticlesOnAvatarVisualCue : MonoBehaviour
 6{
 7    [SerializeField] private IAvatarRenderer.VisualCue avatarVisualCue;
 8    [SerializeField] private GameObject particlePrefab;
 9    [SerializeField] private bool followAvatar;
 103210    [SerializeField] private bool ignoreIfFaraway = true;
 11
 12    private AvatarRenderer avatarRenderer;
 13    private float lodDistanceSqr;
 14
 15    private void Awake()
 16    {
 17        //If we allow this distance to be changed at runtime, we cannot cache it
 80618        lodDistanceSqr = DataStore.i.avatarsLOD.LODDistance.Get();
 80619        lodDistanceSqr *= lodDistanceSqr;
 20
 80621        avatarRenderer = GetComponent<AvatarRenderer>();
 80622        avatarRenderer.OnVisualCue += OnVisualCue;
 80623    }
 24
 25    private void OnVisualCue(IAvatarRenderer.VisualCue cue)
 26    {
 147027        if (ignoreIfFaraway && (avatarRenderer.transform.position - CommonScriptableObjects.playerUnityPosition.Get()).s
 6828            return;
 29
 140230        if (cue != avatarVisualCue || particlePrefab == null)
 140231            return;
 32
 033        GameObject particles = Instantiate(particlePrefab);
 034        particles.transform.position = avatarRenderer.transform.position + particlePrefab.transform.position;
 035        if (followAvatar)
 36        {
 037            FollowObject particlesFollow = particles.AddComponent<FollowObject>();
 038            particlesFollow.target = avatarRenderer.transform;
 039            particlesFollow.offset = particlePrefab.transform.position;
 40        }
 041    }
 42
 43    private void OnDestroy()
 44    {
 80545        if (avatarRenderer == null)
 046            return;
 80547        avatarRenderer.OnVisualCue -= OnVisualCue;
 80548    }
 49}