﻿using UnityEngine;
using Wolf3D.ReadyPlayerMe.AvatarSDK;

public class LoadRPMAvatar : MonoBehaviour
{
    [SerializeField] private string avatarUrl;

    [Space]
    [SerializeField] private string avatarName = "MyAvatar";
    [SerializeField] private Transform characterController;
    
    void Start()
    {
        LoadAvatar();
    }

    private void LoadAvatar()
    {       
        //don't run if url empty
        if (string.IsNullOrEmpty(avatarUrl))
        {
            Debug.LogWarning("URL Not set");
            return;
        }
        
        AvatarLoader avatarLoader = new AvatarLoader();
        avatarLoader.LoadAvatar(avatarUrl, AvatarLoadedCallback);
    }

    protected virtual void AvatarLoadedCallback(GameObject avatar)
    {
        Debug.Log("Avatar Loaded!");
        
        avatar.name = avatarName;

        if (characterController != null)
        {
            avatar.transform.position = characterController.position + Vector3.down; // OVRPlayerController's pivot is 1 unit above ground, avatar needs to be at ground level
            avatar.transform.rotation = characterController.rotation;
        }
    }
}
