using Reflex.Attributes; using UnityEngine; namespace Code.Infrastructure.UI { public abstract class UIPanel : MonoBehaviour { public UIPanelType PanelType { get; set; } [SerializeField] protected bool injectMeSenpai; public bool InjectMeSenpai => injectMeSenpai; [Inject] protected EventBus.EventBus _eventBus; public abstract void Open(); public abstract void Close(); // Вызвать вручную \ добавить в коллбек для вызова ивента в EventBus public virtual void FireCreatedEvent(){} // Вызвать вручную \ добавить в коллбек для вызова ивента в EventBus public virtual void FireRemovedEvent(){} // Вызвать вручную \ добавить в коллбек для вызова ивента в EventBus protected virtual void FireOpenedEvent(){} // Вызвать вручную \ добавить в коллбек для вызова ивента в EventBus protected virtual void FireClosedEvent(){gameObject.SetActive(false);} } }