21 lines
653 B
C#

using Engine.Core;
namespace Engine.Systems.Input;
public interface IButtonInputs<T> : IHasStateEnable
{
InputEvent OnAnyButtonPressed { get; }
InputEvent OnAnyButtonReleased { get; }
void RegisterOnPress(T button, InputEvent.EventHandler callback);
void UnregisterOnPress(T button, InputEvent.EventHandler callback);
void RegisterOnRelease(T button, InputEvent.EventHandler callback);
void UnregisterOnRelease(T button, InputEvent.EventHandler callback);
bool IsPressed(T button);
readonly record struct ButtonCallbackArguments(T Button);
class InputEvent : Event<IButtonInputs<T>, ButtonCallbackArguments>;
}