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

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(());
}