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

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

namespace HutongGames.PlayMaker.Actions.uPano
{
    public abstract class FsmPanoStateAction : FsmStateAction
    {
        public Pano GetPano(FsmObject obj)
        {
            if (obj.IsNone) return null;
            Object v = obj.Value;
            if (v is Pano) return v as Pano;
            if (v is PanoRenderer) return (v as PanoRenderer).pano;
            if (v is GameObject) return (v as GameObject).GetComponent<Pano>();
            return null;
        }

        public PanoRenderer GetPanoRenderer(FsmObject obj)
        {
            if (obj.IsNone) return null;
            Object v = obj.Value;
            if (v is PanoRenderer) return v as PanoRenderer;
            if (v is Pano) return (v as Pano).panoRenderer;
            if (v is GameObject) return (v as GameObject).GetComponent<PanoRenderer>();
            return null;
        }
    }
}