rdeioris / LuaMachine

Unreal Engine Plugin for Lua APIs implementation
MIT License
591 stars 119 forks source link

Assigning a metatable to _G #57

Open LarsIngo opened 1 year ago

LarsIngo commented 1 year ago

It would be awesome to have a similar logic as ULuaUserDataObject::ReceiveLuaMetaIndex(Key) and ULuaUserDataObject::ReceiveLuaMetaNewIndex(Key, Value), but for ULuaState so you would be able to intercept whenever the global table tries to access a field that does not exist etc.

The goal for me is to intercept simple code lite this: ULuaBlueprintFunctionLibrary::LuaRunString(GetWorld(), URCLuaReflectionState::StaticClass(),"Foo"); and be able to return a dynamic FLuaValue based on the Key:"Foo" from a C++ callback.

LarsIngo commented 1 year ago

Issue opened after discussion on discord: Screenshot 2023-05-10 181553

LarsIngo commented 1 year ago

Adding the metatable as you described workes for "Foo.Bar", "Bar = Foo". However, it does not trigger for only "Foo" (expected behaviour?) image