using UnityEngine;

namespace Shooter.Gameplay
{
    /// <summary>
    /// Метка «цель для автоприцела». Регистрирует себя в <see cref="TargetsControl"/>,
    /// чтобы игрок мог автоматически наводиться. <see cref="m_TargetCenter"/> — точка,
    /// в которую целиться (по умолчанию — сам объект).
    /// </summary>
    public class TargetObject : MonoBehaviour
    {
        [Tooltip("Точка прицеливания (если пусто — берётся сам объект)")]
        public Transform m_TargetCenter;

        void Start()
        {
            TargetsControl.m_Main.AddTarget(this);
            if (m_TargetCenter == null)
                m_TargetCenter = transform;
        }

        // Вызывается извне при «выключении» цели (не стандартное сообщение Unity).
        void OnDeactivate()
        {
            RemoveFromTargets();
        }

        public void RemoveFromTargets()
        {
            TargetsControl.m_Main.RemoveTarget(this);
        }
    }
}
