﻿namespace JLGames.RocketDriver.Games.RpgMaterial.Service
{
    public interface ITriggerContainer
    {
        /// <summary>
        /// Check exist
        /// 检查是否存在
        /// </summary>
        /// <param name="triggerId"></param>
        /// <returns></returns>
        bool Exist(int triggerId);

        /// <summary>
        /// Check exist
        /// 检查是否存在
        /// </summary>
        /// <param name="trigger"></param>
        /// <returns></returns>
        bool Exist(ITriggerEntity trigger);

        /// <summary>
        /// Add a trigger into container
        /// 添加一个触发器到容器中
        /// </summary>
        /// <param name="trigger"></param>
        void Add(ITriggerEntity trigger);

        /// <summary>
        /// Remove a trigger from container
        /// 从容器中移除触发器
        /// </summary>
        /// <param name="triggerId"></param>
        void Remove(int triggerId);

        /// <summary>
        /// Remove a trigger from container
        /// 从容器中移除触发器
        /// </summary>
        /// <param name="trigger"></param>
        void Remove(ITriggerEntity trigger);

        /// <summary>
        /// Clear all triggers
        /// 清理全部触发器
        /// </summary>
        void Clear();
    }
}