You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
911 B
Rust
32 lines
911 B
Rust
use rlua::{Result, Context};
|
|
use crate::types::Bind;
|
|
|
|
pub fn init_lua(lua: Context) -> Result<()> {
|
|
create_button_map(lua)?;
|
|
|
|
Ok(())
|
|
}
|
|
|
|
fn create_button_map(lua: Context) -> Result<()> {
|
|
let globals = lua.globals();
|
|
|
|
let mouse_table = lua.create_table()?;
|
|
|
|
mouse_table.set("n", lua.create_function(|_, n: u32| Ok(Bind::Mouse(n)))?)?;
|
|
mouse_table.set("left", Bind::Mouse(1))?;
|
|
mouse_table.set("middle", Bind::Mouse(2))?;
|
|
mouse_table.set("right", Bind::Mouse(3))?;
|
|
mouse_table.set("scroll_up", Bind::Mouse(4))?;
|
|
mouse_table.set("scroll_down", Bind::Mouse(5))?;
|
|
|
|
globals.set("mouse", mouse_table.clone())?;
|
|
globals.set("m", mouse_table)?;
|
|
|
|
let key_table = lua.create_table()?;
|
|
key_table.set("n", lua.create_function(|_, n: u32| Ok(Bind::Key(n)))?)?;
|
|
|
|
globals.set("key", key_table.clone())?;
|
|
globals.set("k", key_table.clone())?;
|
|
|
|
return Ok(());
|
|
} |