roblox_emulator: implement Vector3.__mul
This commit is contained in:
parent
e11af82443
commit
c1f8a13888
@ -1,3 +1,5 @@
|
||||
use mlua::FromLua;
|
||||
|
||||
use super::number::Number;
|
||||
|
||||
#[derive(Clone,Copy)]
|
||||
@ -55,6 +57,20 @@ impl mlua::UserData for Vector3{
|
||||
|
||||
methods.add_meta_function(mlua::MetaMethod::Add,|_,(Vector3(this),Vector3(val)):(Self,Self)|Ok(Self(this+val)));
|
||||
methods.add_meta_function(mlua::MetaMethod::Sub,|_,(Vector3(this),Vector3(val)):(Self,Self)|Ok(Self(this-val)));
|
||||
methods.add_meta_function(mlua::MetaMethod::Mul,|lua,(lhs,rhs):(mlua::Value,mlua::Value)|{
|
||||
match (lhs,rhs){
|
||||
(mlua::Value::UserData(lhs),mlua::Value::UserData(rhs))=>lhs.borrow_scoped(|Vector3(lhs):&Vector3|rhs.borrow_scoped(|Vector3(rhs):&Vector3|Self(lhs*rhs)))?,
|
||||
(lhs,mlua::Value::UserData(rhs))=>{
|
||||
let lhs=Number::from_lua(lhs,lua)?;
|
||||
rhs.borrow_scoped(|Vector3(rhs):&Vector3|Self(lhs.to_f32()*rhs))
|
||||
},
|
||||
(mlua::Value::UserData(lhs),rhs)=>{
|
||||
let rhs=Number::from_lua(rhs,lua)?;
|
||||
lhs.borrow_scoped(|Vector3(lhs):&Vector3|Self(lhs*rhs.to_f32()))
|
||||
},
|
||||
_=>Err(mlua::Error::runtime(format!("Expected Vector3")))
|
||||
}
|
||||
});
|
||||
methods.add_meta_function(mlua::MetaMethod::Div,|_,(Vector3(this),val):(Self,mlua::Value)|{
|
||||
match val{
|
||||
mlua::Value::Integer(n)=>Ok(Self(this/(n as f32))),
|
||||
|
Loading…
x
Reference in New Issue
Block a user