rename dom function to avoid confusion with dom variable
This commit is contained in:
parent
7b8f091ab3
commit
136b360590
@ -5,7 +5,7 @@ use rbx_dom_weak::{InstanceBuilder,WeakDom};
|
||||
use super::vector3::Vector3;
|
||||
|
||||
// LMAO look at this function!
|
||||
fn dom<T>(lua:&mlua::Lua,mut f:impl FnMut(&mut WeakDom)->mlua::Result<T>)->mlua::Result<T>{
|
||||
fn dom_mut<T>(lua:&mlua::Lua,mut f:impl FnMut(&mut WeakDom)->mlua::Result<T>)->mlua::Result<T>{
|
||||
let mut dom=lua.app_data_mut::<&'static mut WeakDom>().ok_or(mlua::Error::runtime("DataModel missing"))?;
|
||||
f(&mut *dom)
|
||||
}
|
||||
@ -126,26 +126,26 @@ class_composition!(Instance,(Instance));
|
||||
impl Instance{
|
||||
fn composition_add_fields<'lua,T:Referent,F:mlua::UserDataFields<'lua,T>>(fields:&mut F){
|
||||
fields.add_field_method_get("Parent",|lua,this|{
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
let instance=this.get(dom)?;
|
||||
Ok(Instance::new(instance.parent()))
|
||||
})
|
||||
});
|
||||
fields.add_field_method_set("Parent",|lua,this,val:mlua::AnyUserData|{
|
||||
let Dereferent(referent)=mlua::AnyUserDataExt::get(&val,"Referent")?;
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
dom.transfer_within(this.referent(),referent);
|
||||
Ok(())
|
||||
})
|
||||
});
|
||||
fields.add_field_method_get("Name",|lua,this|{
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
let instance=this.get(dom)?;
|
||||
Ok(instance.name.clone())
|
||||
})
|
||||
});
|
||||
fields.add_field_method_set("Name",|lua,this,val:mlua::String|{
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
let instance=this.get_mut(dom)?;
|
||||
//Why does this need to be cloned?
|
||||
instance.name=val.to_str()?.to_owned();
|
||||
@ -153,7 +153,7 @@ impl Instance{
|
||||
})
|
||||
});
|
||||
fields.add_field_method_get("ClassName",|lua,this|{
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
let instance=this.get(dom)?;
|
||||
Ok(instance.class.clone())
|
||||
})
|
||||
@ -161,7 +161,7 @@ impl Instance{
|
||||
}
|
||||
fn composition_add_methods<'lua,T:Referent,M:mlua::UserDataMethods<'lua,T>>(methods:&mut M){
|
||||
methods.add_method("GetChildren",|lua,this,_:()|
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
let instance=this.get(dom)?;
|
||||
let children:Vec<_>=instance
|
||||
.children()
|
||||
@ -174,7 +174,7 @@ impl Instance{
|
||||
);
|
||||
let ffc=|lua,this:&T,(name,search_descendants):(mlua::String,Option<bool>)|{
|
||||
let name_str=name.to_str()?;
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
let instance=this.get(dom)?;
|
||||
Ok(
|
||||
match search_descendants.unwrap_or(false){
|
||||
@ -191,7 +191,7 @@ impl Instance{
|
||||
methods.add_method("WaitForChild",ffc);
|
||||
methods.add_method("FindFirstChildOfClass",|lua,this,(class,search_descendants):(mlua::String,Option<bool>)|{
|
||||
let class_str=class.to_str()?;
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
Ok(
|
||||
match search_descendants.unwrap_or(false){
|
||||
true=>find_first_descendant_of_class(dom,this.get(dom)?,class_str),
|
||||
@ -204,7 +204,7 @@ impl Instance{
|
||||
})
|
||||
});
|
||||
methods.add_method("GetDescendants",|lua,this,_:()|
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
let children:Vec<_>=dom
|
||||
.descendants_of(this.referent())
|
||||
.map(|instance|
|
||||
@ -215,13 +215,13 @@ impl Instance{
|
||||
})
|
||||
);
|
||||
methods.add_method("IsA",|lua,this,classname:mlua::String|
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
let instance=this.get(dom)?;
|
||||
Ok(crate::context::class_is_a(instance.class.as_str(),classname.to_str()?))
|
||||
})
|
||||
);
|
||||
methods.add_method("Destroy",|lua,this,()|
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
dom.destroy(this.referent());
|
||||
Ok(())
|
||||
})
|
||||
@ -229,7 +229,7 @@ impl Instance{
|
||||
methods.add_meta_function(mlua::MetaMethod::Index,|lua,(this,index):(mlua::AnyUserData,mlua::String)|{
|
||||
let index_str=index.to_str()?;
|
||||
let dereferent:Dereferent=mlua::AnyUserDataExt::get(&this,"Referent")?;
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
let instance=dereferent.get(dom)?;
|
||||
match instance.properties.get(index_str){
|
||||
Some(&rbx_types::Variant::CFrame(cf))=>return Ok(Into::<super::cframe::CFrame>::into(cf).into_lua(lua)),
|
||||
@ -247,7 +247,7 @@ impl Instance{
|
||||
});
|
||||
methods.add_meta_function(mlua::MetaMethod::NewIndex,|lua,(this,index,value):(mlua::AnyUserData,mlua::String,mlua::Value)|{
|
||||
let dereferent:Dereferent=mlua::AnyUserDataExt::get(&this,"Referent")?;
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
let instance=dereferent.get_mut(dom)?;
|
||||
//println!("__newindex t={} i={index:?} v={value:?}",instance.name);
|
||||
let index_str=index.to_str()?;
|
||||
@ -308,7 +308,7 @@ class_composition!(DataModel,(Instance,DataModel));
|
||||
impl DataModel{
|
||||
fn composition_add_fields<'lua,T:Referent,F:mlua::UserDataFields<'lua,T>>(fields:&mut F){
|
||||
fields.add_field_method_get("workspace",|lua,this|{
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
Ok(find_first_child_of_class(dom,this.get(dom)?,"Workspace")
|
||||
.map(|inst|Workspace::new(inst.referent()))
|
||||
)
|
||||
@ -320,7 +320,7 @@ impl DataModel{
|
||||
}
|
||||
fn composition_add_methods<'lua,T,M:mlua::UserDataMethods<'lua,T>>(methods:&mut M){
|
||||
methods.add_method("GetService",|lua,this,service:String|
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
match service.as_str(){
|
||||
"Lighting"=>{
|
||||
let referent=find_first_child_of_class(dom,dom.root(),"Lighting")
|
||||
@ -342,7 +342,7 @@ class_composition!(Workspace,(Instance,Workspace));
|
||||
impl Workspace{
|
||||
fn composition_add_fields<'lua,T:Referent,F:mlua::UserDataFields<'lua,T>>(fields:&mut F){
|
||||
fields.add_field_method_get("Terrain",|lua,this|{
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
Ok(find_first_child_of_class(dom,this.get(dom)?,"Terrain")
|
||||
.map(|inst|Terrain::new(inst.referent()))
|
||||
)
|
||||
@ -359,7 +359,7 @@ class!(Script);
|
||||
class_composition!(Script,(Instance));
|
||||
impl Script{
|
||||
pub fn get_name_source(&self,lua:&mlua::Lua)->Result<(String,String),mlua::Error>{
|
||||
dom(lua,|dom|{
|
||||
dom_mut(lua,|dom|{
|
||||
let instance=self.get(dom)?;
|
||||
let source=match instance.properties.get("Source"){
|
||||
Some(rbx_dom_weak::types::Variant::String(s))=>s.clone(),
|
||||
|
Loading…
Reference in New Issue
Block a user