From 258b28c27a4e6076ad41af4f204824901255929c Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Sat, 10 Aug 2024 19:48:27 +0200 Subject: fix loader open --- src/sheet/register.rs | 8 +++++++- src/state/view/mod.rs | 9 ++------- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'src') 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| { - 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(()) }); -- cgit v1.2.3-70-g09d2