public void Can_recompress_file() { var activeSaveFile = new SaveFileCompressionHelper(); activeSaveFile.CompressFromSingleFile(_binPath, _jsonPath, out var recompressedFilePath); _recompressedBinPath = recompressedFilePath; }
public Form1() { InitializeComponent(); if (!Directory.Exists(Constants.FileStructure.OUTPUT_FOLDER_NAME)) { Directory.CreateDirectory(Constants.FileStructure.OUTPUT_FOLDER_NAME); } exportToolStripMenuItem.Click += ExportToolStripMenuItem_Click; NameResolver.UseDictionary(JsonConvert.DeserializeObject <Dictionary <ulong, NameResolver.NameStruct> >(File.ReadAllText(NAMES_FILE_NAME))); FactResolver.UseDictionary(JsonConvert.DeserializeObject <Dictionary <ulong, string> >(File.ReadAllText(FACTS_FILE_NAME))); //Make rightclick select node. Better usability of context menu EditorTree.NodeMouseClick += (sender, args) => EditorTree.SelectedNode = args.Node; //Add Hexeditor as editor for byte arrays TypeDescriptor.AddAttributes(typeof(byte[]), new EditorAttribute(typeof(HexEditor), typeof(UITypeEditor))); TypeDescriptor.AddAttributes(typeof(CharacterCustomizationAppearances.AppearanceSection), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); TypeDescriptor.AddAttributes(typeof(CharacterCustomizationAppearances.Section), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); TypeDescriptor.AddAttributes(typeof(ItemData.NextItemEntry), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); TypeDescriptor.AddAttributes(typeof(ItemData.ItemFlags), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); TypeDescriptor.AddAttributes(typeof(ItemData), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); TypeDescriptor.AddAttributes(typeof(ItemData.HeaderThing), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); TypeDescriptor.AddAttributes(typeof(ItemData.ItemInnerData), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); TypeDescriptor.AddAttributes(typeof(ItemData.SimpleItemData), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); TypeDescriptor.AddAttributes(typeof(ItemData.ModableItemData), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); TypeDescriptor.AddAttributes(typeof(ItemData.ItemModData), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); TypeDescriptor.AddAttributes(typeof(Inventory.SubInventory), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); TypeDescriptor.AddAttributes(typeof(ItemDropStorage), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); TypeDescriptor.AddAttributes(typeof(FactsTable.FactEntry), new TypeConverterAttribute(typeof(ExpandableObjectConverter))); //Settings var interfaceType = typeof(INodeParser); var types = AppDomain.CurrentDomain.GetAssemblies().SelectMany(s => s.GetTypes()).Where(p => interfaceType.IsAssignableFrom(p) && p.IsClass); if (File.Exists(SETTINGS_FILE_NAME)) { _settings = JsonConvert.DeserializeObject <Settings>(File.ReadAllText(SETTINGS_FILE_NAME)); foreach (var type in types) { var instance = (INodeParser)Activator.CreateInstance(type); _parserConfig.Add(new ParserConfig(instance, _settings.EnabledParsers.Contains(instance.Guid))); } } else { foreach (var type in types) { var instance = Activator.CreateInstance(type); _parserConfig.Add(new ParserConfig((INodeParser)instance, true)); } _settings = new Settings(); _settings.EnabledParsers.AddRange(_parserConfig.Where(p => p.Enabled = true).Select(p => p.Parser.Guid)); } dataGridView1.DataSource = _parserConfig; _saveFileCompressionHelper = new SaveFileCompressionHelper(); }
public void Can_decompress_file() { using (var compressedInputStream = File.OpenRead(_saveFile)) { var activeSaveFile = new SaveFileCompressionHelper(); var decompressedFile = activeSaveFile.Decompress(compressedInputStream); var json = JsonConvert.SerializeObject(activeSaveFile.MetaInformation, Formatting.Indented); _jsonPath = $"{Constants.FileStructure.OUTPUT_FOLDER_NAME}\\{activeSaveFile.MetaInformation.FileGuid}_{Constants.FileStructure.METAINFORMATION_SUFFIX}.{Constants.FileExtensions.JSON}"; File.WriteAllText(_jsonPath, json); _binPath = $"{Constants.FileStructure.OUTPUT_FOLDER_NAME}\\{activeSaveFile.MetaInformation.FileGuid}_{Constants.FileStructure.UNCOMPRESSED_SUFFIX}.{Constants.FileExtensions.DECOMPRESSED_FILE}"; File.WriteAllBytes(_binPath, decompressedFile); } }