Skip to content
Snippets Groups Projects
Commit 7243ff56 authored by Joseph Walton-Rivers's avatar Joseph Walton-Rivers
Browse files

store pointer to state in lua

parent 22e55153
No related branches found
No related tags found
No related merge requests found
print("File has been loaded!") print("File has been loaded!")
\ No newline at end of file print(state);
\ No newline at end of file
...@@ -81,7 +81,9 @@ namespace demo { ...@@ -81,7 +81,9 @@ namespace demo {
m_phys = physService->create(&world(), entFactory); m_phys = physService->create(&world(), entFactory);
auto* scriptProvider = m_owner.service<fggl::script::ScriptProvider>(); auto* scriptProvider = m_owner.service<fggl::script::ScriptProvider>();
m_scripts = scriptProvider->create(); m_scripts = scriptProvider->create();
m_scripts->setGlobal("state", this);
// asset loader // asset loader
auto* assetLoader = m_owner.service<fggl::assets::Loader>(); auto* assetLoader = m_owner.service<fggl::assets::Loader>();
......
...@@ -40,6 +40,8 @@ namespace fggl::script { ...@@ -40,6 +40,8 @@ namespace fggl::script {
// run code in engine // run code in engine
virtual bool run(const char* script) = 0; virtual bool run(const char* script) = 0;
virtual bool load(const char* filename) = 0; virtual bool load(const char* filename) = 0;
virtual void setGlobal(const char* name, void* ptr) = 0;
}; };
class ScriptProvider { class ScriptProvider {
......
...@@ -45,6 +45,9 @@ namespace fggl::script::lua { ...@@ -45,6 +45,9 @@ namespace fggl::script::lua {
bool run(const char* script) override; bool run(const char* script) override;
bool load(const char* filename) override; bool load(const char* filename) override;
// variables
void setGlobal(const char* name, void* ptr) override;
private: private:
data::Storage* m_storage; data::Storage* m_storage;
lua_State* m_state; lua_State* m_state;
......
...@@ -95,4 +95,9 @@ namespace fggl::script::lua { ...@@ -95,4 +95,9 @@ namespace fggl::script::lua {
return true; return true;
} }
void LuaScriptEngine::setGlobal(const char *name, void *ptr) {
lua_pushlightuserdata(m_state, ptr);
lua_setglobal(m_state, name);
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment