< Summary

Class:AvatarSystem.AvatarFactory
Assembly:AvatarSystem
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/AvatarSystem/AvatarFactory.cs
Covered lines:7
Uncovered lines:0
Coverable lines:7
Total lines:54
Line coverage:100% (7 of 7)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
AvatarFactory(...)0%110100%
CreateAvatar(...)0%110100%
CreateAvatarWithHologram(...)0%110100%
CreateLoader(...)0%110100%
CreateAvatarCurator()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/AvatarSystem/AvatarFactory.cs

#LineLine coverage
 1using DCL;
 2using GPUSkinning;
 3using UnityEngine;
 4
 5namespace AvatarSystem
 6{
 7    public class AvatarFactory : IAvatarFactory
 8    {
 9        private readonly ServiceLocator serviceLocator;
 10
 49311        public AvatarFactory(ServiceLocator serviceLocator)
 12        {
 49313            this.serviceLocator = serviceLocator;
 49314        }
 15
 16        public IAvatar CreateAvatar(GameObject avatarContainer, IAnimator animator, ILOD lod, IVisibility visibility) =>
 65217            new Avatar(
 18                CreateAvatarCurator(),
 19                CreateLoader(avatarContainer),
 20                animator,
 21                visibility,
 22                lod,
 23                new SimpleGPUSkinning(),
 24                new GPUSkinningThrottler(),
 25                new EmoteAnimationEquipper(animator, DataStore.i.emotes)
 26            );
 27
 28        public IAvatar CreateAvatarWithHologram(
 29            GameObject avatarContainer,
 30            Transform avatarRevealContainer,
 31            GameObject armatureContainer,
 32            IAnimator animator,
 33            ILOD lod,
 34            IVisibility visibility
 35        ) =>
 236            new AvatarWithHologram(
 37                new BaseAvatar(avatarRevealContainer, armatureContainer, lod),
 38                CreateAvatarCurator(),
 39                CreateLoader(avatarContainer),
 40                animator,
 41                visibility,
 42                lod,
 43                new SimpleGPUSkinning(),
 44                new GPUSkinningThrottler(),
 45                new EmoteAnimationEquipper(animator, DataStore.i.emotes)
 46            );
 47
 48        private Loader CreateLoader(GameObject avatarContainer) =>
 65449            new (new WearableLoaderFactory(), avatarContainer, new AvatarMeshCombinerHelper());
 50
 51        private AvatarCurator CreateAvatarCurator() =>
 65452            new (new WearableItemResolver(), serviceLocator.Get<IEmotesCatalogService>());
 53    }
 54}