public static void InitLua_Critical(IntPtr l) { // mods var mods = CapsLuaFileManager.GetCriticalLuaMods(); for (int i = 0; i < mods.Length; ++i) { var mod = mods[i]; TryRequireLua(l, "?raw.mod.\"" + mod + "\".init"); } TryRequireLua(l, "?raw.init"); }
public static int ClrFuncApkLoader(IntPtr l) { string mname = l.GetString(1); if (!string.IsNullOrEmpty(mname)) { string location; System.IO.Stream stream = null; GCHandle? handle = null; try { stream = CapsLuaFileManager.GetLuaStream(mname, out location); if (stream != null) { if (_LuaStreamReader == null) { _LuaStreamReader = new CapsLuaFileManager.LuaStreamReader(null); } _LuaStreamReader.Reuse(stream, PlatDependant.CopyStreamBuffer); handle = GCHandle.Alloc(_LuaStreamReader); location = string.Format("{0}<{1}>", mname, location); if (l.load(CapsLuaFileManager.LuaStreamReader.ReaderDel, (IntPtr)handle.Value, location) == 0) { return(1); } else { DynamicHelper.LogError(l.GetLua(-1)); l.pop(1); return(0); } } } catch (Exception e) { l.LogError(e); } finally { if (stream != null) { stream.Dispose(); } if (handle != null) { handle.Value.Free(); } } } return(0); }