string generateVdfsEntriesTreeView(string vdfFile) { var vdf = new VdfsReader(vdfFile); var entries = vdf.ReadEntries(false).ToArray(); return(generateVdfsEntriesTreeView(entries)); }
public void DetectIfWorldIsNotExists() { if (File.Exists(gothic.GetGameFile(Gothic.GameFile.WorldsVdf)) == false) { Logger.Fatal("Test.Error.RequireReinstall".Translate("Worlds.vdf")); } var worlds = new VdfsReader(gothic.GetGameFile(Gothic.GameFile.WorldsVdf)) .ReadEntries(false) .Where(x => x.Name.EndsWith(".ZEN", StringComparison.OrdinalIgnoreCase)) .Select(x => x.Name).ToList(); if (gothic.Version == Gothic.GameVersion.Gothic2) { if (File.Exists(gothic.GetGameFile(Gothic.GameFile.WorldsAddonVdf)) == false) { Logger.Fatal("Test.Error.RequireReinstall".Translate("Worlds_Addon.vdf")); } worlds.AddRange(new VdfsReader(gothic.GetGameFile(Gothic.GameFile.WorldsAddonVdf)) .ReadEntries(false) .Where(x => x.Name.EndsWith(".ZEN", StringComparison.OrdinalIgnoreCase)) .Select(x => x.Name).ToList()); } foreach (var dir in Program.Config.ModFiles.Assets) { var worldsDir = Path.Combine(dir, "Worlds"); if (Directory.Exists(worldsDir)) { worlds.AddRange(Directory.GetFiles(worldsDir, "*.ZEN", SearchOption.AllDirectories).ToList()); } } var world = (Program.Options.TestVerb.World ?? Program.Config.ModFiles.DefaultWorld).ToUpper(); if (worlds.Where(x => Path.GetFileName(x) == Path.GetFileName(world)).Count() < 1) { Logger.Fatal("Config.Error.FileDidNotFound".Translate(world)); } }
public void DisableVdfs() { foreach (var vdf in Directory.GetFiles(GetGameDirectory(Gothic.GameDirectory.Data))) { var reader = new VdfsReader(vdf); var hasAnims = reader .ReadEntries(false) .Where(x => x.Name.Equals("ANIMS", StringComparison.OrdinalIgnoreCase)) .Select(x => x.Name).Count() > 0; reader.Dispose(); if (hasAnims) { var newPath = PathsUtils.ChangeExtension(vdf, ".disabled"); disabledVdfs.Add(newPath); File.Move(vdf, newPath); } } }
static void Main(string[] args) { List <string> extra; try { extra = options.Parse(args); } catch (OptionException e) { Console.WriteLine(e.Message); return; } if (Options.ShowHelp || extra.Count == 0) { PrintHelp(); } else { var filePath = extra[0]; if (File.Exists(filePath) == false) { Console.WriteLine("File `{0}` do not exists!", filePath); return; } var reader = new VdfsReader(filePath); if (Options.ExtractPath != string.Empty) { Console.WriteLine("Extracting archive `{0}` to directory `{1}` (with hierarchy: {2}).", filePath, Options.ExtractPath, Options.WithHierarchy); using (var extractor = new VdfsExtractor(reader)) { extractor.ExtractFiles(Options.ExtractPath, (Options.WithHierarchy == true) ? ExtractOption.Hierarchy : ExtractOption.NoHierarchy); Console.WriteLine("Done."); } } else if (Options.PrintTree || Options.SaveTree != string.Empty) { var entries = reader.ReadEntries(false).ToArray(); var treeGenerator = new VdfsEntriesTreeGenerator(entries); var tree = treeGenerator.Generate(); var treeView = tree.GetTreeView(); if (Options.PrintTree) { Console.WriteLine(); Console.Write(treeView); } else { File.WriteAllText(Options.SaveTree, treeView); Console.WriteLine("Entries tree saved to file `{0}`", Options.SaveTree); } } else { PrintHelp(); } } return; }
public void Init() { vdfsReader = new VdfsReader("Samples/test.vdf"); }