diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2024-08-10 19:48:27 +0200 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2024-08-10 19:48:27 +0200 |
| commit | 258b28c27a4e6076ad41af4f204824901255929c (patch) | |
| tree | 744b3937d62f21eedc17d039e2186a62fe07e355 | |
| parent | f4c019a200f548fcf28be5c8557572ab78a1e2e8 (diff) | |
fix loader open
| -rw-r--r-- | src/sheet/register.rs | 8 | ||||
| -rw-r--r-- | src/state/view/mod.rs | 9 |
2 files changed, 9 insertions, 8 deletions
diff --git a/src/sheet/register.rs b/src/sheet/register.rs index 82982e9..9f2493f 100644 --- a/src/sheet/register.rs +++ b/src/sheet/register.rs @@ -61,7 +61,13 @@ impl UserData for Register { }); methods.add_function("open", |lua, path: String| { - Ok(Loader::get().load_sheet(path, lua)) + if let Some(id) = Loader::get().load_sheet(path, lua) { + let luaref = SheetLuaRef::new(id); + if let Ok(ud) = lua.create_userdata(luaref) { + return Ok(Value::UserData(ud)); + } + } + Ok(Value::Nil) }); methods.add_function("get", |lua, id: SheetId| { diff --git a/src/state/view/mod.rs b/src/state/view/mod.rs index 41937a1..9ec303b 100644 --- a/src/state/view/mod.rs +++ b/src/state/view/mod.rs @@ -128,13 +128,8 @@ impl UserData for SheetViewState { } }); - fields.add_field_function_set("active", |_, _, sheet: Option<SheetLuaRef>| { - if let Some(r) = sheet { - cfg!().active_sheet = Some(r.id()) - } else { - cfg!().active_sheet = None - } - + fields.add_field_function_set("active", |_, _, sheet: SheetLuaRef| { + cfg!().set_active_sheet(Some(sheet.id())); Ok(()) }); |