Skip to main content

lotus_script/
action.rs

1//! Abfrage registrierter Eingabeaktionen.
2//!
3//! Query registered input actions.
4
5use lotus_script_sys::FfiObject;
6pub use lotus_shared::action::*;
7use lotus_shared::input::ActionState;
8
9/// Gibt den aktuellen Zustand einer Aktion zurück.
10/// Nicht registrierte Aktionen liefern [`crate::input::ActionStateKind::None`].
11///
12/// Returns the current state of an action.
13/// Unregistered actions return [`crate::input::ActionStateKind::None`].
14pub fn state(action: &str) -> ActionState {
15    let action = FfiObject::new(&action);
16    let state = unsafe { lotus_script_sys::action::state(action.packed()) };
17
18    FfiObject::from_packed(state).deserialize()
19}
20
21#[doc(hidden)]
22pub fn register_many(actions: &[RegisterAction]) {
23    for action in actions {
24        let action = FfiObject::new(&action);
25        unsafe {
26            lotus_script_sys::action::register(action.packed());
27        }
28    }
29}