dreamwell_engine/input/mod.rs
1// Input — platform-agnostic input control plane.
2//
3// Provides the engine-level input abstraction consumed by all clients (runtime, editor,
4// React, TUI). Platform adapters translate native events (winit, egui, browser) into
5// these types. Game systems consume InputFrame without knowing the source device.
6//
7// Architecture:
8// VirtualKey — platform-independent key/button codes
9// ButtonState<T> — generic three-state tracker (pressed, just_pressed, just_released)
10// AxisValue/Pair — float axes with dead zones
11// InputAction — semantic game actions (MoveForward, Attack, OpenInventory, ...)
12// InputMode — context switches (TileMap, FreeCamera, UiFocus, Cinematic)
13// InputBinding — rebindable VirtualKey → InputAction mapping
14// InputFrame — per-frame snapshot consumed by game logic
15
16pub mod action;
17pub mod axis;
18pub mod binding;
19pub mod button;
20pub mod frame;
21pub mod particle;
22pub mod wave;
23
24pub use action::{InputAction, InputMode};
25pub use axis::{digital_axis, digital_axis_pair, AxisPair, AxisValue};
26pub use binding::{InputBindingMap, VirtualKey};
27pub use button::ButtonState;
28pub use frame::{InputFrame, InputFrameBuilder, InputPacket};
29pub use wave::{
30 parse_decoherence_tag, DecoherenceField, DecoherenceState, DecoherenceTagValue, DreamWaveController, WaveForm,
31};