using Syntriax.Engine.Core.Abstract; namespace Syntriax.Engine.Input; public interface IButtonInputs : IAssignableStateEnable { event ButtonCallbackEventHandler? OnAnyButtonPressed; event ButtonCallbackEventHandler? OnAnyButtonReleased; void RegisterOnPress(T button, ButtonCallbackEventHandler callback); void UnregisterOnPress(T button, ButtonCallbackEventHandler callback); void RegisterOnRelease(T button, ButtonCallbackEventHandler callback); void UnregisterOnRelease(T button, ButtonCallbackEventHandler callback); bool IsPressed(T button); delegate void ButtonCallbackEventHandler(IButtonInputs buttonInputs, T button); }