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