39 lines
953 B
C#
39 lines
953 B
C#
namespace MoonWorks.Input
|
|
{
|
|
public struct ButtonState
|
|
{
|
|
public ButtonStatus ButtonStatus { get; }
|
|
|
|
public bool IsPressed => ButtonStatus == ButtonStatus.Pressed;
|
|
public bool IsHeld => ButtonStatus == ButtonStatus.Held;
|
|
public bool IsDown => ButtonStatus == ButtonStatus.Pressed || ButtonStatus == ButtonStatus.Held;
|
|
public bool IsReleased => ButtonStatus == ButtonStatus.Released;
|
|
|
|
public ButtonState(ButtonStatus buttonStatus)
|
|
{
|
|
ButtonStatus = buttonStatus;
|
|
}
|
|
|
|
internal ButtonState Update(bool isPressed)
|
|
{
|
|
if (isPressed)
|
|
{
|
|
if (ButtonStatus == ButtonStatus.Pressed)
|
|
{
|
|
return new ButtonState(ButtonStatus.Held);
|
|
}
|
|
else if (ButtonStatus == ButtonStatus.Released)
|
|
{
|
|
return new ButtonState(ButtonStatus.Pressed);
|
|
}
|
|
else if (ButtonStatus == ButtonStatus.Held)
|
|
{
|
|
return new ButtonState(ButtonStatus.Held);
|
|
}
|
|
}
|
|
|
|
return new ButtonState(ButtonStatus.Released);
|
|
}
|
|
}
|
|
}
|