Ejemplo n.º 1
0
        public LuaState()
        {
            L = LuaAPI.luaL_newstate();
            LuaAPI.luaL_openlibs(L);

            LuaAPI.lua_newtable(L);
            LuaAPI.lua_pushstring(L, "getmetatable");
            LuaAPI.lua_getglobal(L, "getmetatable");
            LuaAPI.lua_settable(L, -3);
            LuaAPI.lua_pushstring(L, "rawget");
            LuaAPI.lua_getglobal(L, "rawget");
            LuaAPI.lua_settable(L, -3);
            LuaAPI.lua_pushstring(L, "rawset");
            LuaAPI.lua_getglobal(L, "rawset");
            LuaAPI.lua_settable(L, -3);
            LuaAPI.lua_setglobal(L, "luanet");

            LuaAPI.lua_getglobal(L, "luanet");
            translator = new ObjectTranslator(this, L);
            translator.PushTranslator(L);

            LuaAPI.lua_atpanic(L, LuaStatic.panic);

            LuaAPI.lua_pushstdcallcfunction(L, LuaStatic.print);
            LuaAPI.lua_setglobal(L, "print");
            LuaAPI.lua_pushstdcallcfunction(L, LuaStatic.loadfile);
            LuaAPI.lua_setglobal(L, "loadfile");
            LuaAPI.lua_pushstdcallcfunction(L, LuaStatic.dofile);
            LuaAPI.lua_setglobal(L, "dofile");
            LuaAPI.lua_pushstdcallcfunction(L, LuaStatic.importWrap);
            LuaAPI.lua_setglobal(L, "import");

            AddLoader(LuaStatic.loader, 2);
            AddLoader(LuaStatic.LoadBuiltinLib, 3);

            errorFuncRef = LuaAPI.get_error_func_ref(L);
            LuaAPI.lua_settop(L, 0); //clear stack
        }