roblox_emulator: implement Instance.Clone

This commit is contained in:
Quaternions 2025-04-22 20:52:42 -07:00
parent 261b88ada6
commit 4ecdcec17c
Signed by: Quaternions
GPG Key ID: D0DF5964F79AC131

@ -150,6 +150,15 @@ impl mlua::UserData for Instance{
});
}
fn add_methods<M:mlua::UserDataMethods<Self>>(methods:&mut M){
fn clone(lua:&mlua::Lua,this:&Instance,_:())->mlua::Result<Instance>{
dom_mut(lua,|dom|{
let instance_ref=dom.clone_within(this.referent);
dom.transfer_within(instance_ref,Instance::nil().referent);
Ok(Instance::new_unchecked(instance_ref))
})
}
methods.add_method("clone",clone);
methods.add_method("Clone",clone);
fn get_children(lua:&mlua::Lua,this:&Instance,_:())->mlua::Result<Vec<Instance>>{
dom_mut(lua,|dom|{
let instance=this.get(dom)?;