/*           INFINITY CODE           */
/*     https://infinity-code.com     */

using InfinityCode.uPano.Renderers.Base;
using UnityEngine;

namespace HutongGames.PlayMaker.Actions.uPano
{
    [ActionCategory(uPanoCategories.PANORAMA)]
    [Tooltip("Get Panorama instance from Pano Renderer")]
    public class GetPanoFromRenderer : FsmStateAction
    {
        [RequiredField]
        public FsmObject renderer;

        [RequiredField]
        [UIHint(UIHint.Variable)]
        public FsmObject storePano;

        public override void Reset()
        {
            renderer = null;
            storePano = null;
        }

        public override void OnEnter()
        {
            DoEnter();
            Finish();
        }

        private void DoEnter()
        {
            if (renderer.IsNone)
            {
                Debug.LogError("Requires reference to Pano Renderer");
                return;
            }

            if (renderer.Value is PanoRenderer)
            {
                storePano.Value = (renderer.Value as PanoRenderer).pano;
            }
            else
            {
                Debug.LogError("Renderer field should contain a reference to Pano Renderer");
            }
        }
    }
}