using Intrepid.Core.Camera;
using Intrepid.SimpleEvents;
using Intrepid.Utilities;
using Sirenix.OdinInspector;
using UnityEngine;

namespace Intrepid.Gameplay.Entities.Player.Sentinel
{
    public class SentinelCameraManager : EventListener
    {
        [GroupInjections, SerializeField] private SentinelBrain brain;
        [GroupInjections, SerializeField] private CameraStream follow;

        private SentinelBrain Brain => brain;
        [GroupDebug, ShowInInspector, ReadOnly, HideLabel] public CameraStreamStack CameraStreamStack { get; } = new();
        
        protected override void InitializeVariables()
        {
            CameraStreamStack.Transform = Brain.Entity.RigidBodyTransform;
            CameraStreamStack.Push(follow, true);
        }

        protected override void OnBootstrap()
        {
        }

        protected override void Subscriptions()
        {
        }
   }
}