diff --git a/lib/roblox_emulator/src/runner/vector3.rs b/lib/roblox_emulator/src/runner/vector3.rs index 288832a..7baa91e 100644 --- a/lib/roblox_emulator/src/runner/vector3.rs +++ b/lib/roblox_emulator/src/runner/vector3.rs @@ -38,6 +38,8 @@ impl mlua::UserData for Vector3{ fn add_fields<F:mlua::UserDataFields<Self>>(fields:&mut F){ fields.add_field_method_get("magnitude",|_,Vector3(this)|Ok(this.length())); fields.add_field_method_get("Magnitude",|_,Vector3(this)|Ok(this.length())); + fields.add_field_method_get("unit",|_,Vector3(this)|Ok(Vector3(this.normalize()))); + fields.add_field_method_get("Unit",|_,Vector3(this)|Ok(Vector3(this.normalize()))); fields.add_field_method_get("x",|_,Vector3(this)|Ok(this.x)); fields.add_field_method_get("X",|_,Vector3(this)|Ok(this.x)); fields.add_field_method_get("y",|_,Vector3(this)|Ok(this.y)); @@ -50,6 +52,7 @@ impl mlua::UserData for Vector3{ //methods.add_method("area",|_,this,()| Ok(this.length * this.width)); 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::Div,|_,(Vector3(this),val):(Self,mlua::Value)|{ match val{ mlua::Value::Integer(n)=>Ok(Self(this/(n as f32))),