﻿using AsmodeeDigital.Common.Plugin.Manager.Coroutine;
using AsmodeeDigital.Common.Plugin.Utils;
using com.daysofwonder;
using System;
using UnityEngine.UI;

namespace AsmodeeDigital.PlayReal.Plugin.Utils
{
    public static class AvatarPortraitLoader
    {
        /// <summary>
        /// Default avatars location on DoW server
        /// </summary>
        public static string dowAvatarsLocation = "http://www.daysofwonder.com/images/avatars/{0}";

        /// <summary>
        /// Default uploaded avatars location on DoW server
        /// </summary>
        public static string uploadedAvatarsLocation = "https://cdn.daysofwonder.com/uploads/avatars/{0}";

        /// <summary>
        /// Load asynchronously avatar then active the UI image
        /// </summary>
        /// <param name="player"></param>
        /// <param name="image"></param>
        public static void LoadPlayerAvatar(Player player, Image image)
        {
            string avatarUrl = String.Empty;

            if (player != null && player.avatar != null)
            {
                if (!String.IsNullOrEmpty(player.avatar.image))
                    avatarUrl = String.Format(dowAvatarsLocation, player.avatar.image);
                else if (!String.IsNullOrEmpty(player.avatar.location))
                    avatarUrl = player.avatar.location;
                else if (player.avatar.id > 0)
                    avatarUrl = String.Format(uploadedAvatarsLocation, player.avatar.id);
            }

            if (!String.IsNullOrEmpty(avatarUrl))
                CoroutineManager.StartCoroutine(TextureLoader.LoadTexture(avatarUrl, image));
        }
    }
}
