﻿/*     INFINITY CODE 2013-2019      */
/*   http://www.infinity-code.com   */

using HutongGames.PlayMaker;

namespace InfinityCode.RealWorldTerrain.Playmaker
{
    [ActionCategory(CATEGORY)]
    [Tooltip("Checks whether the area contains the specified coordinates")]
    public class ContainsCoordinate : RealWorldTerrainFSMStateAction
    {
        [Tooltip("Real World Terrain Container")]
        public RealWorldTerrainMonoBase terrainItem;

        [Tooltip("Coordinates")]
        public FsmVector2 coordinates;

        [RequiredField]
        [Tooltip("Result. True - coordinates inside terrains, False - otherwise.")]
        [UIHint(UIHint.Variable)]
        public FsmBool storeResult;

        public override void Reset()
        {
            storeResult = null;
            coordinates = new FsmVector2 { UseVariable = true };
        }

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

        private void DoEnter()
        {
            if (terrainItem == null) terrainItem = container;
            storeResult.Value = terrainItem.Contains(coordinates.Value);
        }
    }
}