﻿using UnityEngine;

namespace FOHEART.GlovePlugin
{
    /// <summary>
    /// 手势动作
    /// </summary>
    public enum Gesture
    {
        MARK_POINT,     // 地点标记、射线标记
        GO_POINT,       // 前往标记地点
        BULLET,         // 填充子弹
        FIRE,           // 开火、射击
        GRAB_ITEM,      // 抓取物品
        DEPART,         // 丢弃
        PRESS,          // 按压
        NONE = 255
    }

    /// <summary>
    /// 手势动作回调接口
    /// </summary>
    public interface IFOGestureAction
    {

        /// <summary>
        /// 识别到手势
        /// </summary>
        /// <param name="currentGesture">当前左手手势</param>
        /// <param name="leftHandTouchObject">左手碰撞器</param>
        /// <param name="gameObject">左手触碰到的物体</param>
        public void onLeftHandGesture(Gesture currentGesture, GameObject leftHandTouchObject, GameObject gameObject);

        /// <summary>
        /// 识别到手势
        /// </summary>
        /// <param name="currentGesture">当前右手手势</param>
        /// <param name="leftHandTouchObject">右手碰撞器</param>
        /// <param name="gameObject">右手触碰到的物体</param>
        public void onRightHandGesture(Gesture currentGesture, GameObject leftHandTouchObject, GameObject gameObject);

        /// <summary>
        /// 识别到双手手势
        /// </summary>
        /// <param name="leftHandGesture">当前左手手势</param>
        /// <param name="leftHandTouchObject">左手碰撞器</param>
        /// <param name="leftHandAdjacentItem">左手触碰到的物体</param>
        /// <param name="rightHandGesture">当前右手手势</param>
        /// <param name="rightHandTouchObject">右手碰撞器</param>
        /// <param name="rightHandAdjacentItem">右手触碰到的物体</param>
        public void onHandGesture(Gesture leftHandGesture, GameObject leftHandTouchObject, GameObject leftHandAdjacentItem, 
            Gesture rightHandGesture, GameObject rightHandTouchObject, GameObject rightHandAdjacentItem);

    }

    public interface BulletDestructableFlag { }

    public interface GrabHoldFlag { }

}
