summaryrefslogtreecommitdiff
path: root/source/libs/asura-lib-utils/scripting
diff options
context:
space:
mode:
Diffstat (limited to 'source/libs/asura-lib-utils/scripting')
-rw-r--r--source/libs/asura-lib-utils/scripting/lua_env.h28
1 files changed, 24 insertions, 4 deletions
diff --git a/source/libs/asura-lib-utils/scripting/lua_env.h b/source/libs/asura-lib-utils/scripting/lua_env.h
index a467479..3bef3df 100644
--- a/source/libs/asura-lib-utils/scripting/lua_env.h
+++ b/source/libs/asura-lib-utils/scripting/lua_env.h
@@ -16,21 +16,41 @@ namespace AsuraEngine
{
///
- /// ͨӿڷlua state
+ /// ͨӿڷlua stateAsura˼ǣ߳άһluaӦõҪ߼ڴlua
+ /// ߳߽ջ
///
class LuaEnv ASURA_FINAL : public Singleton<LuaEnv>
{
public:
- LuaEnv() : mMainState(0){};
+ LuaEnv() : mMainState(0) {};
~LuaEnv() {};
///
/// ִջ
///
- inline void Init(lua_State* L) { ASSERT(!mMainState); mMainState = L; };
+ inline void Init()
+ {
+ ASSERT(!mMainState);
+ // ߳
+ mMainState = Luax::LuaxRuntime::Get().Open();
+ ASSERT(mMainState);
+ };
- inline lua_State* GetMainState() { return mMainState; };
+ inline lua_State* GetMainState()
+ {
+ return mMainState;
+ };
+
+ inline Luax::LuaxState& GetMainLuaxState()
+ {
+ return Luax::LuaxRuntime::Get()[mMainState].state;
+ };
+
+ inline void Exit()
+ {
+ Luax::LuaxRuntime::Get().Close(mMainState);
+ }
private: