euca-input) is pure data: an InputState snapshot (pressed/just-pressed keys,
mouse, scroll, gamepad), an ActionMap binding InputKeys to named actions, and an InputContextStack
(Gameplay / Menu / Editor) that decides which bindings are active. It’s headless and serializable
— InputSnapshot is used for networked replay.
Context stack
/input/context/pop removes the top context (it won’t pop the last one).
What it does
- Bindings —
ActionMap::bindmaps anInputKey(Key(name), mouse buttons, gamepad buttons/axes) to a named action;active_actions/just_started_actionsquery them. - Context stack — push/pop
Gameplay/Menu/Editorto switch which bindings apply. - Gamepad —
GamepadStatetracks axes and buttons per gamepad id. - Snapshots —
InputSnapshot::capture()/apply_to()for server-side replay.
Endpoints
| Method | Path | Description |
|---|---|---|
POST | /input/bind | Bind a key/button to a named action |
POST | /input/unbind | Remove a binding |
GET | /input/list | List current bindings |
POST | /input/context/push | Push an input context |
POST | /input/context/pop | Pop the top context |
Status
- ✅ Bindings, action maps, context stack, gamepad abstraction, input snapshots — shipped and headless.
- 🟡 The default headless server doesn’t register an
ActionMap(see the warning above).
Input endpoints
Bind, unbind, list, and context endpoints with schemas.