using System;
using Fort23.Core;
#if !COMBAT_SERVER
using UnityEngine;
#endif
using Object = System.Object;
namespace Fort23.UTool
{
    /// 
    /// 池子的 接口,不同池继承这个接口
    /// 
    public interface IGObjectPoolInterface : IDisposable
    {
        string poolObjName { get; set; }
        bool isUse { get; set; }
        bool isDestroy { get; }
     
#if !COMBAT_SERVER
         AssetHandle AssetHandle { get; set; }
        GameObject own { get; }
               TimerEntity DestroyTimer { get; set; }
#endif
     
        void SetPosition(Vector3 pos);
        void SetScale(Vector3 scale);
        void SetRotation(Vector3 rotation);
        Vector3 GetPosition();
        Vector3 GetScale();
        Vector3 GettRotation();
        void SetActive(bool isActive);
        /// 
        /// 回收时延迟回收
        /// 
        /// 
        CTask DelayHide();
        
        /// 
        /// 重置数据
        /// 
        void ResetData();
        /// 
        /// 激活对象
        /// 
        void ActiveObj();
        /// 
        /// 休眠
        /// 
        void DormancyObj();
        /// 
        /// 销毁
        /// 
        void DestroyObj();
#if !COMBAT_SERVER
        void SetGameObject(GameObject gameObject);
#endif
        void Preset();
        
    }
}