< 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:35
Uncovered lines:12
Coverable lines:47
Total lines:97
Line coverage:74.4% (35 of 47)
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%98.6527053.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 System;
 2using UnityEngine;
 3
 4public class AvatarEditorHUDAnimationController : IDisposable
 5{
 6
 7    private ICharacterPreviewController characterPreviewController;
 8    private readonly IAvatarEditorHUDView hudView;
 9    internal string activeCategory;
 10    private int currentAnimationIndexShown;
 11
 5712    public AvatarEditorHUDAnimationController(IAvatarEditorHUDView avatarEditorHUDView, ICharacterPreviewController char
 13    {
 5714        this.hudView = avatarEditorHUDView;
 5715        this.characterPreviewController = characterPreviewController;
 16
 5717        hudView.OnRandomize += OnClickRandomize;
 5718        hudView.WearableSelectorClicked += OnSelectWearable;
 5719        hudView.OnAvatarAppearFeedback += AvatarAppearFeedback;
 5720    }
 21
 22    public void AvatarAppearFeedback(AvatarModel avatarModelToUpdate)
 23    {
 124        if (!string.IsNullOrEmpty(activeCategory))
 25        {
 126            PlayAnimation(avatarModelToUpdate);
 27        }
 128    }
 29
 30    private void OnClickRandomize()
 31    {
 132        activeCategory = "";
 133    }
 34
 35    private void PlayAnimation(AvatarModel avatarModelToUpdate)
 36    {
 137        avatarModelToUpdate.expressionTriggerTimestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
 138        characterPreviewController.PlayEmote(activeCategory, DateTimeOffset.UtcNow.ToUnixTimeMilliseconds());
 139    }
 40
 41    public void OnSelectWearable(string wearableId)
 42    {
 843        CatalogController.wearableCatalog.TryGetValue(wearableId, out var wearable);
 844        switch (wearable.data.category)
 45        {
 46            case WearableLiterals.Categories.FEET:
 147                activeCategory = GetRandomizedName("Outfit_Shoes_v0",2);
 148                break;
 49            case WearableLiterals.Categories.LOWER_BODY:
 150                activeCategory = GetRandomizedName("Outfit_Lower_v0",3);
 151                break;
 52            case WearableLiterals.Categories.UPPER_BODY:
 153                activeCategory = GetRandomizedName("Outfit_Upper_v0",3);
 154                break;
 55            case "eyewear":
 156                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 157                break;
 58            case "tiara":
 259                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 260                break;
 61            case "earring":
 062                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 063                break;
 64            case "hat":
 065                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 066                break;
 67            case "top_head":
 068                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 069                break;
 70            case "helmet":
 071                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 072                break;
 73            case "mask":
 074                activeCategory = GetRandomizedName("Outfit_Accessories_v0",3);
 075                break;
 76            case "skin":
 077                activeCategory = GetRandomizedName("Outfit_Upper_v0",3);
 078                break;
 79            default:
 280                activeCategory = "";
 81                break;
 82        }
 283    }
 84
 85    private string GetRandomizedName(string baseString, int limit)
 86    {
 687        currentAnimationIndexShown = (currentAnimationIndexShown + 1) % limit;
 688        return baseString + (currentAnimationIndexShown + 1);
 89    }
 90
 91    public void Dispose()
 92    {
 4393        hudView.OnAvatarAppearFeedback -= AvatarAppearFeedback;
 4394        hudView.OnRandomize -= OnClickRandomize;
 4395        hudView.WearableSelectorClicked -= OnSelectWearable;
 4396    }
 97}