namespace DaggerFramework { public abstract class InputAction { public abstract bool IsDown(InputHandler inputHandler); public abstract bool IsPressed(InputHandler inputHandler); public abstract bool IsReleased(InputHandler inputHandler); } public class KeyInputAction : InputAction { public KeyboardKey Key => _keyboardKey; public KeyInputAction(KeyboardKey keyboardKey) { _keyboardKey = keyboardKey; } public override bool IsDown(InputHandler inputHandler) { return inputHandler.IsKeyboardKeyDown(_keyboardKey); } public override bool IsPressed(InputHandler inputHandler) { return inputHandler.KeyboardKeyJustPressed(_keyboardKey); } public override bool IsReleased(InputHandler inputHandler) { return inputHandler.KeyboardKeyJustReleased(_keyboardKey); } private KeyboardKey _keyboardKey; } }