// this LoadCLRPackage can rename the 'import' function public static void LoadCLRPackage(this Lua lua, string newImportName) { lua.LoadCLRPackage(); if (!string.IsNullOrEmpty(newImportName)) { string str = string.Format(@" if _G.import then -- To avoid ambiguity, rename _G.import _G.{0} = _G.import; _G.import = nil; end", newImportName); LuaLib.LuaLDoString(lua.LuaState, str); } }
public static void SetSearcher(Lua lua) { if (SearcherUnityLuaFunction == null) SearcherUnityLuaFunction = new LuaNativeFunction(Searcher_UnityLua); LuaLib.LuaPushStdCallCFunction(lua.LuaState, SearcherUnityLuaFunction); LuaLib.LuaSetGlobal(lua.LuaState, "____SearcherUnityLuaFunction"); string str = @" if _G.____SearcherUnityLuaFunction then table.insert(package.searchers, 1, _G.____SearcherUnityLuaFunction); _G.____SearcherUnityLuaFunction = nil end"; LuaLib.LuaLDoString(lua.LuaState, str); }
void Init() { LuaLib.LuaPushString(luaState, "LUAINTERFACE LOADED"); LuaLib.LuaPushBoolean(luaState, true); LuaLib.LuaSetTable(luaState, (int)LuaIndexes.Registry); if (_StatePassed == false) { LuaLib.LuaNewTable(luaState); LuaLib.LuaSetGlobal(luaState, "luanet"); } LuaLib.LuaNetPushGlobalTable(luaState); LuaLib.LuaGetGlobal(luaState, "luanet"); LuaLib.LuaPushString(luaState, "getmetatable"); LuaLib.LuaGetGlobal(luaState, "getmetatable"); LuaLib.LuaSetTable(luaState, -3); LuaLib.LuaNetPopGlobalTable(luaState); translator = new ObjectTranslator(this, luaState); ObjectTranslatorPool.Instance.Add(luaState, translator); LuaLib.LuaNetPopGlobalTable(luaState); LuaLib.LuaLDoString(luaState, Lua.initLuanet); }
/* * Registers the indexing function of CLR objects * passed to Lua */ private void CreateIndexingMetaFunction(LuaState luaState) { LuaLib.LuaPushString(luaState, "luaNet_indexfunction"); LuaLib.LuaLDoString(luaState, MetaFunctions.LuaIndexFunction); LuaLib.LuaRawSet(luaState, (int)LuaIndexes.Registry); }
public void LoadCLRPackage() { LuaLib.LuaLDoString(luaState, Lua.clr_package); }