hack together .Position
This commit is contained in:
parent
3f71ead5f1
commit
5726e70582
@ -253,7 +253,23 @@ impl mlua::UserData for Instance{
|
|||||||
Some(&rbx_types::Variant::Ref(val))=>return Instance::new(val).into_lua(lua),
|
Some(&rbx_types::Variant::Ref(val))=>return Instance::new(val).into_lua(lua),
|
||||||
Some(&rbx_types::Variant::CFrame(cf))=>return Into::<super::cframe::CFrame>::into(cf).into_lua(lua),
|
Some(&rbx_types::Variant::CFrame(cf))=>return Into::<super::cframe::CFrame>::into(cf).into_lua(lua),
|
||||||
Some(&rbx_types::Variant::Vector3(v))=>return Into::<super::vector3::Vector3>::into(v).into_lua(lua),
|
Some(&rbx_types::Variant::Vector3(v))=>return Into::<super::vector3::Vector3>::into(v).into_lua(lua),
|
||||||
None=>(),
|
None=>{
|
||||||
|
//hack to make .Position work
|
||||||
|
if let Some((property_str,dumb_thing))=match index_str{
|
||||||
|
"Position"=>Some(("CFrame",|c:&rbx_types::Variant|{
|
||||||
|
let c=match c{
|
||||||
|
rbx_types::Variant::CFrame(c)=>c,
|
||||||
|
_=>return Err(mlua::Error::runtime("Not a CFrame")),
|
||||||
|
};
|
||||||
|
Into::<super::vector3::Vector3>::into(c.position).into_lua(lua)
|
||||||
|
})),
|
||||||
|
_=>None,
|
||||||
|
}{
|
||||||
|
if let Some(thing)=instance.properties.get(property_str).map(dumb_thing){
|
||||||
|
return thing;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
other=>return Err(mlua::Error::runtime(format!("Instance.__index Unsupported property type instance={} index={index_str} value={other:?}",instance.name))),
|
other=>return Err(mlua::Error::runtime(format!("Instance.__index Unsupported property type instance={} index={index_str} value={other:?}",instance.name))),
|
||||||
}
|
}
|
||||||
//find a function with a matching name
|
//find a function with a matching name
|
||||||
|
Loading…
Reference in New Issue
Block a user