/// <summary> /// Executes a Lua chunk and returns all the chunk's return values in an array. /// </summary> /// <param name = "chunk">Chunk to execute</param> /// <param name = "chunkName">Name to associate with the chunk. Defaults to "chunk".</param> /// <returns></returns> public object[] DoString(string chunk, string chunkName = "chunk") { int oldTop = LuaLib.LuaGetTop(luaState); executing = true; if (LuaLib.LuaLLoadBuffer(luaState, chunk, chunkName) == 0) { try { if (LuaLib.LuaPCall(luaState, 0, -1, 0) == 0) { return(translator.PopValues(luaState, oldTop)); } else { ThrowExceptionFromError(oldTop); } } finally { executing = false; } } else { ThrowExceptionFromError(oldTop); } return(null); // Never reached - keeps compiler happy }
public static void LoadImportExpand(this Lua lua) { int result = LuaLib.LuaLLoadBuffer(lua.LuaState, LunaPackage, "Import.lua(in Import.cs)"); if (result != 0) throw new NotSupportedException("Import.LoadExpand failed"); LuaLib.LuaPCall (lua.LuaState, 0, -1, 0); }
public static int Searcher_UnityLua(LuaState luaState) { string fileName = LuaLib.LuaToString(luaState, 1); fileName = fileName.Replace('.', '/'); fileName += ".lua"; var file = LoadAsset(fileName) as UnityEngine.TextAsset; if(file == null) return 0; var data = file.bytes; LuaLib.LuaLLoadBuffer(luaState, data, fileName); return 1; }
/// <summary> /// /// </summary> /// <param name = "chunk"></param> /// <param name = "name"></param> /// <returns></returns> public LuaFunction LoadString(byte[] chunk, string name) { int oldTop = LuaLib.LuaGetTop(luaState); executing = true; try { if (LuaLib.LuaLLoadBuffer(luaState, chunk, name) != 0) { ThrowExceptionFromError(oldTop); } } finally { executing = false; } var result = translator.GetFunction(luaState, -1); translator.PopValues(luaState, oldTop); return(result); }
/// <summary> /// Executes a Lua chunk and returns all the chunk's return values in an array. /// </summary> /// <param name = "chunk">Chunk to execute</param> /// <param name = "chunkName">Name to associate with the chunk. Defaults to "chunk".</param> /// <returns></returns> public object[] DoString(byte[] chunk, string chunkName = "chunk") { int oldTop = LuaLib.LuaGetTop(luaState); executing = true; if (LuaLib.LuaLLoadBuffer(luaState, chunk, chunkName) == 0) { int errfunction = 0; if (UseTraceback) { errfunction = PushDebugTraceback(luaState, 0); oldTop++; } try { if (LuaLib.LuaPCall(luaState, 0, -1, errfunction) == 0) { return(translator.PopValues(luaState, oldTop)); } else { ThrowExceptionFromError(oldTop); } } finally { executing = false; } } else { ThrowExceptionFromError(oldTop); } return(null); // Never reached - keeps compiler happy }