44 lines
1.5 KiB
C#
44 lines
1.5 KiB
C#
using Microsoft.Xna.Framework.Input;
|
|
|
|
namespace FreedomFighter;
|
|
|
|
/// <summary>
|
|
/// Replacement for TOmegaInput's keyboard state sets, with the key assignments
|
|
/// from GameU.dfm: B1=Space, B2=Esc, B3=Enter, B4=RCtrl, B5=1, B6=2, B7=3, B8=M.
|
|
/// "States" = held; "StatesClicked" = pressed this frame.
|
|
/// </summary>
|
|
public class OmegaInput
|
|
{
|
|
KeyboardState _prev;
|
|
KeyboardState _cur;
|
|
|
|
public void Update()
|
|
{
|
|
_prev = _cur;
|
|
_cur = Keyboard.GetState();
|
|
}
|
|
|
|
bool Held(Keys k) => _cur.IsKeyDown(k);
|
|
bool Clicked(Keys k) => _cur.IsKeyDown(k) && _prev.IsKeyUp(k);
|
|
|
|
public bool Up => Held(Keys.Up);
|
|
public bool Down => Held(Keys.Down);
|
|
public bool Left => Held(Keys.Left);
|
|
public bool Right => Held(Keys.Right);
|
|
public bool Button4 => Held(Keys.RightControl) || Held(Keys.LeftControl);
|
|
public bool Button8 => Held(Keys.M);
|
|
|
|
public bool UpClicked => Clicked(Keys.Up);
|
|
public bool DownClicked => Clicked(Keys.Down);
|
|
public bool Button1Clicked => Clicked(Keys.Space);
|
|
public bool Button2Clicked => Clicked(Keys.Escape);
|
|
public bool Button3Clicked => Clicked(Keys.Enter);
|
|
public bool Button5Clicked => Clicked(Keys.D1) || Clicked(Keys.NumPad1);
|
|
public bool Button6Clicked => Clicked(Keys.D2) || Clicked(Keys.NumPad2);
|
|
public bool Button7Clicked => Clicked(Keys.D3) || Clicked(Keys.NumPad3);
|
|
public bool PauseClicked => Clicked(Keys.Pause);
|
|
|
|
public KeyboardState Current => _cur;
|
|
public KeyboardState Previous => _prev;
|
|
}
|