InputLib 1.0.0
See the version list below for details.
dotnet add package InputLib --version 1.0.0
NuGet\Install-Package InputLib -Version 1.0.0
<PackageReference Include="InputLib" Version="1.0.0" />
<PackageVersion Include="InputLib" Version="1.0.0" />
<PackageReference Include="InputLib" />
paket add InputLib --version 1.0.0
#r "nuget: InputLib, 1.0.0"
#:package InputLib@1.0.0
#addin nuget:?package=InputLib&version=1.0.0
#tool nuget:?package=InputLib&version=1.0.0
InputLibrary
Overview
A Godot and ebitengine-input inspired action input handling system for MonoGame.
Key features:
- Actions paradigm instead of the raw input events
- Configurable keymaps
- Bind more than one key to a single action with All or Any condition
- Motion-style events, like "gamepad stick just moved"
This library may require some extra docs, code comments and examples. You can significantly help me by providing those. Pointing out what is currently missing is helpful too!
Usage samples
Create enum with your game actions.
public enum InputAction
{
MoveLeft = 0,
MoveRight,
};
Create new object of InputSystem
var system = new InputSystem<InputAction>();
Now create keymap dictionary. Use ICondition classes like: AllCondition, AnyCondition, KeyboardCondition, GamePadCondition, MouseCondition
var keymap = new Dictionary<InputActions, ICondition>()
{
{ InputActions.MoveLeft, new AnyCondition(new KeyboardCondition(Keys.A), new KeyboardCondition(Keys.Left), new GamePadCondition(GamePadButton.Left), new GamePadCondition(GamePadButton.LeftTrigger)) },
{ InputActions.MoveRight, new AnyCondition(new KeyboardCondition(Keys.D), new KeyboardCondition(Keys.Right), new GamePadCondition(GamePadButton.Right), new GamePadCondition(GamePadButton.RightTrigger)) },
};
Create new InputHandler for checking input events
var handler = _inputSystem.NewHandler(keymap, PlayerIndex.One);
Now you can check input events
if (handler.IsActionPressed(InputAction.MoveRight))
{
_position.X += 100 * dt;
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- MonoGame.Framework.DesktopGL (>= 3.8.2.1105)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.