using UnityEngine;
using XGame.Framework.Components;
using XGame.Framework.Interfaces;

namespace XGame.Framework.Map
{
    public interface IEntityView : IReference
    {
        /// <summary>
        /// 激活状态
        /// </summary>
        bool Active { get; }
        /// <summary>
        /// 激活
        /// </summary>
        void Enable(object intent = null);
        /// <summary>
        /// 隐藏
        /// </summary>
        void Disable();

        public Vector3 LocalPosition { get; set; }
        public Vector3 Position { get; set; }
        public Vector3 Rotation { get; set; }
        /// <summary>
        /// 获取组件
        /// </summary>
        /// <typeparam name="TComponent"></typeparam>
        /// <param name="autoCreate">是否自动创建</param>
        /// <returns></returns>
        TComponent GetComponent<TComponent>(bool autoCreate = true) where TComponent : class, IComponent;
    }
    public interface IEntityProxy
    {
        EntityBehaviour Behaviour { get; set; }
    }
}