/// <summary> /// gets the list of dependencies from modinfo.lua /// </summary> string[] GetDependenciesFromLua(string archiveName, string fileName) { var modInfoFile = Archive.ExtractTextFile(archiveName, fileName); var results = CLua.TraceDoString(L, 1, modInfoFile); return(results[0].GetLuaValues("depend").Select(v => v.ToString()).ToArray()); }
static string GetTdfField(IntPtr L, string fieldName, string archivePath) { var archive = Archive.Open(archivePath); var tdfFile = FindModInfo(archive, "tdf"); if (tdfFile != null) { var modInfoTable = GetTdfTableFromString(L, Archive.ExtractTextFile(archivePath, tdfFile)); if (modInfoTable[0] is LuaNil) { throw new Exception(String.Format("Error in file {0}: {1}", archivePath, modInfoTable[1])); } var modInfo = modInfoTable[0].GetField("mod"); if (modInfo == null) { return(null); } var field = modInfo.GetField(fieldName); if (field == null) { return(null); } return(field.ToString()); } var luaFile = FindModInfo(archive, "lua"); if (luaFile != null) { var modinfo = Archive.ExtractTextFile(archivePath, luaFile); var result = CLua.TraceDoString(L, 1, modinfo)[0].GetField(fieldName); if (result == null) { return(null); } return(result.ToString()); } return(null); }