using Syntriax.Engine.Core.Abstract; namespace Syntriax.Engine.Input; public interface IButtonInputs : IAssignableStateEnable { 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); }