scripting: implement querying for resources from lua
This commit is contained in:
parent
6465ed2e0b
commit
747d4dcf19
|
@ -1,4 +1,4 @@
|
|||
use std::{sync::Arc, ptr::NonNull, any::Any, ops::Deref};
|
||||
use std::{sync::{Arc, RwLock}, ptr::NonNull, any::Any, ops::Deref};
|
||||
|
||||
use lyra_ecs::query::dynamic::QueryDynamicType;
|
||||
use lyra_reflect::{TypeRegistry, ReflectWorldExt, RegisteredType};
|
||||
|
@ -6,7 +6,7 @@ use mlua::{AnyUserDataExt, IntoLua, IntoLuaMulti};
|
|||
|
||||
use crate::{ScriptWorldPtr, ScriptEntity, ScriptDynamicBundle, ScriptBorrow};
|
||||
|
||||
use super::{ReflectedIterator, DynamicViewIter, FN_NAME_INTERNAL_REFLECT_TYPE, reflect_user_data, ReflectLuaProxy};
|
||||
use super::{ReflectedIterator, DynamicViewIter, FN_NAME_INTERNAL_REFLECT_TYPE, reflect_user_data, ReflectLuaProxy, FN_NAME_INTERNAL_REFLECT};
|
||||
|
||||
impl<'lua> mlua::FromLua<'lua> for ScriptEntity {
|
||||
fn from_lua(value: mlua::Value<'lua>, _lua: &'lua mlua::Lua) -> mlua::Result<Self> {
|
||||
|
@ -165,6 +165,24 @@ impl mlua::UserData for ScriptWorldPtr {
|
|||
.call_function::<_, ScriptBorrow>(FN_NAME_INTERNAL_REFLECT_TYPE, ())
|
||||
.expect("Type does not implement 'reflect_type' properly");
|
||||
|
||||
//if let Some(data) = reflect.data {
|
||||
/* let res = reflect.reflect_branch.as_resource_unchecked();
|
||||
if let Some(res_ptr) = res.reflect_arc(this.as_mut()) {
|
||||
let reg_type = this.as_ref().get_type::<RegisteredType>(reflect.reflect_branch.reflect_type_id())
|
||||
.unwrap();
|
||||
let proxy = reg_type.get_data::<ReflectLuaProxy>()
|
||||
.expect("Type does not have ReflectLuaProxy as a TypeData");
|
||||
|
||||
//let res = Arc::new(RwLock::new(data.as_any_box()))
|
||||
(proxy.fn_as_uservalue_ref)(lua, res_ptr)
|
||||
.and_then(|ud| ud.into_lua(lua))
|
||||
|
||||
//Ok(mlua::Value::Nil)
|
||||
} else {
|
||||
Ok(mlua::Value::Nil)
|
||||
} */
|
||||
|
||||
|
||||
let res = reflect.reflect_branch.as_resource_unchecked();
|
||||
if let Some(res_ptr) = res.reflect_ptr(this.as_mut()) {
|
||||
//.expect("Failed to find resource pointer in world!");
|
||||
|
|
Loading…
Reference in New Issue