roblox_emulator: implement Players service stub

This commit is contained in:
Quaternions 2025-04-22 21:04:29 -07:00
parent 448f40a5d8
commit 14fa450e3e
Signed by: Quaternions
GPG Key ID: D0DF5964F79AC131

@ -396,7 +396,7 @@ const GET_SERVICE:ClassFunctionPointer=cf!(|lua,_this,service:mlua::String|{
//dom.root_ref()==this.referent ? //dom.root_ref()==this.referent ?
let service=&*service.to_str()?; let service=&*service.to_str()?;
match service{ match service{
"Lighting"|"RunService"=>{ "Lighting"|"RunService"|"Players"=>{
let referent=find_first_child_of_class(dom,dom.root(),service) let referent=find_first_child_of_class(dom,dom.root(),service)
.map(|instance|instance.referent()) .map(|instance|instance.referent())
.unwrap_or_else(|| .unwrap_or_else(||
@ -408,6 +408,9 @@ const GET_SERVICE:ClassFunctionPointer=cf!(|lua,_this,service:mlua::String|{
} }
}) })
}); });
const GET_PLAYERS:ClassFunctionPointer=cf!(|_lua,_this,()|{
Ok::<_,mlua::Error>(Vec::<Instance>::new())
});
static CLASS_FUNCTION_DATABASE:CFD=phf::phf_map!{ static CLASS_FUNCTION_DATABASE:CFD=phf::phf_map!{
"DataModel"=>phf::phf_map!{ "DataModel"=>phf::phf_map!{
"service"=>GET_SERVICE, "service"=>GET_SERVICE,
@ -417,6 +420,10 @@ static CLASS_FUNCTION_DATABASE:CFD=phf::phf_map!{
"FillBlock"=>cf!(|_lua,_,_:(crate::runner::cframe::CFrame,Vector3,crate::runner::r#enum::Enum)|mlua::Result::Ok(())), "FillBlock"=>cf!(|_lua,_,_:(crate::runner::cframe::CFrame,Vector3,crate::runner::r#enum::Enum)|mlua::Result::Ok(())),
"SetMaterialColor"=>cf!(|_lua,_,_:(crate::runner::r#enum::Enum,crate::runner::color3::Color3)|mlua::Result::Ok(())), "SetMaterialColor"=>cf!(|_lua,_,_:(crate::runner::r#enum::Enum,crate::runner::color3::Color3)|mlua::Result::Ok(())),
}, },
"Players"=>phf::phf_map!{
"players"=>GET_PLAYERS,
"GetPlayers"=>GET_PLAYERS,
}
}; };
/// A store of created functions for each Roblox class. /// A store of created functions for each Roblox class.
@ -532,6 +539,9 @@ static LAZY_USER_DATA:LUD=phf::phf_map!{
"Heartbeat"=>|lua|lua.create_any_userdata(crate::runner::script_signal::ScriptSignal::new()), "Heartbeat"=>|lua|lua.create_any_userdata(crate::runner::script_signal::ScriptSignal::new()),
"RenderStepped"=>|lua|lua.create_any_userdata(crate::runner::script_signal::ScriptSignal::new()), "RenderStepped"=>|lua|lua.create_any_userdata(crate::runner::script_signal::ScriptSignal::new()),
}, },
"Players"=>phf::phf_map!{
"PlayerAdded"=>|lua|lua.create_any_userdata(crate::runner::script_signal::ScriptSignal::new()),
},
}; };
#[derive(Default)] #[derive(Default)]
pub struct InstanceValueStore{ pub struct InstanceValueStore{