< Summary

Class:AvatarEditorHUDAnimationController
Assembly:AvatarEditorHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/AvatarEditorHUD/Scripts/AvatarEditorHUDAnimationController.cs
Covered lines:34
Uncovered lines:12
Coverable lines:46
Total lines:95
Line coverage:73.9% (34 of 46)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
AvatarEditorHUDAnimationController(...)0%110100%
AvatarAppearFeedback(...)0%220100%
OnClickRandomize()0%110100%
PlayAnimation(...)0%110100%
OnSelectWearable(...)0%92.4426053.85%
GetRandomizedName(...)0%110100%
Dispose()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/AvatarEditorHUD/Scripts/AvatarEditorHUDAnimationController.cs

#LineLine coverage
 1using DCL;
 2using System;
 3using UnityEngine;
 4
 5public class AvatarEditorHUDAnimationController : IDisposable
 6{
 7    private readonly IAvatarEditorHUDView hudView;
 8    internal string activeCategory;
 9    private int currentAnimationIndexShown;
 10
 5711    public AvatarEditorHUDAnimationController(IAvatarEditorHUDView avatarEditorHUDView)
 12    {
 5713        this.hudView = avatarEditorHUDView;
 14
 5715        hudView.OnRandomize += OnClickRandomize;
 5716        hudView.WearableSelectorClicked += OnSelectWearable;
 5717        hudView.OnAvatarAppearFeedback += AvatarAppearFeedback;
 5718    }
 19
 20    public void AvatarAppearFeedback(AvatarModel avatarModelToUpdate)
 21    {
 122        if (!string.IsNullOrEmpty(activeCategory))
 23        {
 124            PlayAnimation(avatarModelToUpdate);
 25        }
 126    }
 27
 28    private void OnClickRandomize()
 29    {
 130        activeCategory = "";
 131    }
 32
 33    private void PlayAnimation(AvatarModel avatarModelToUpdate)
 34    {
 135        avatarModelToUpdate.expressionTriggerTimestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
 136        hudView.CharacterPreview.PlayEmote(activeCategory, DateTimeOffset.UtcNow.ToUnixTimeMilliseconds());
 137    }
 38
 39    public void OnSelectWearable(string wearableId)
 40    {
 841        CatalogController.wearableCatalog.TryGetValue(wearableId, out var wearable);
 842        switch (wearable.data.category)
 43        {
 44            case WearableLiterals.Categories.FEET:
 145                activeCategory = GetRandomizedName("Outfit_Shoes_v0",2);
 146                break;
 47            case WearableLiterals.Categories.LOWER_BODY:
 148                activeCategory = GetRandomizedName("Outfit_Lower_v0",3);
 149                break;
 50            case WearableLiterals.Categories.UPPER_BODY:
 151                activeCategory = GetRandomizedName("Outfit_Upper_v0",3);
 152                break;
 53            case "eyewear":
 154                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 155                break;
 56            case "tiara":
 257                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 258                break;
 59            case "earring":
 060                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 061                break;
 62            case "hat":
 063                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 064                break;
 65            case "top_head":
 066                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 067                break;
 68            case "helmet":
 069                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 070                break;
 71            case "mask":
 072                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 073                break;
 74            case "skin":
 075                activeCategory = GetRandomizedName("Outfit_Upper_v0",3);
 076                break;
 77            default:
 278                activeCategory = "";
 79                break;
 80        }
 281    }
 82
 83    private string GetRandomizedName(string baseString, int limit)
 84    {
 685        currentAnimationIndexShown = (currentAnimationIndexShown + 1) % limit;
 686        return baseString + (currentAnimationIndexShown + 1);
 87    }
 88
 89    public void Dispose()
 90    {
 4391        hudView.OnAvatarAppearFeedback -= AvatarAppearFeedback;
 4392        hudView.OnRandomize -= OnClickRandomize;
 4393        hudView.WearableSelectorClicked -= OnSelectWearable;
 4394    }
 95}