public override int GetHashCode() { int hashCode = -1049898043; hashCode = hashCode * -1521134295 + Id.GetHashCode(); hashCode = hashCode * -1521134295 + LabBookId.GetHashCode(); hashCode = hashCode * -1521134295 + Lm.GetHashCode(); hashCode = hashCode * -1521134295 + Am.GetHashCode(); hashCode = hashCode * -1521134295 + Bm.GetHashCode(); hashCode = hashCode * -1521134295 + Ls.GetHashCode(); hashCode = hashCode * -1521134295 + As.GetHashCode(); hashCode = hashCode * -1521134295 + Bs.GetHashCode(); hashCode = hashCode * -1521134295 + WIm.GetHashCode(); hashCode = hashCode * -1521134295 + YIm.GetHashCode(); hashCode = hashCode * -1521134295 + WIs.GetHashCode(); hashCode = hashCode * -1521134295 + YIs.GetHashCode(); hashCode = hashCode * -1521134295 + X.GetHashCode(); hashCode = hashCode * -1521134295 + Y.GetHashCode(); hashCode = hashCode * -1521134295 + Z.GetHashCode(); hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Comment); hashCode = hashCode * -1521134295 + Created.GetHashCode(); hashCode = hashCode * -1521134295 + Updated.GetHashCode(); return(hashCode); }
public void WriteFiles(List <AssetsReplacer> replacers, bool overwrite = false) { var lastFileId = replacers.Max(r => r.GetFileID()); for (var fileId = 0; fileId <= lastFileId; fileId++) { var id = fileId; var sortedAssetsList = replacers.Where(r => r.GetFileID() == id).ToList(); // sort the list of replacers by fileID var fileInst = Workspace.LoadedFiles[fileId]; if (overwrite) { var path = fileInst.path; var tempPath = Path.Combine(Path.GetTempPath(), fileInst.name); using var fs = File.OpenWrite(tempPath); using var writer = new AssetsFileWriter(fs); fileInst.file.Write(writer, 0, sortedAssetsList, 0); Am.UnloadAssetsFile(path); fs.Close(); File.Replace(tempPath, path, path + ".backup"); Workspace.LoadedFiles[fileId] = Am.LoadAssetsFile(path, false); } else { var sfd = new SaveFileDialog { Title = @"Save as...", Filter = @"All types (*.*)|*.*|Assets file (*.assets)|*.assets", FileName = fileInst.name }; if (sfd.ShowDialog() != DialogResult.OK) { continue; } if (fileInst.path == sfd.FileName) { MsgBoxUtils.ShowErrorDialog("If you want to overwrite files go to \"File->Save\" instead of \"File->Save as...\"!"); return; } using var fs = File.OpenWrite(sfd.FileName); using var writer = new AssetsFileWriter(fs); fileInst.file.Write(writer, 0, sortedAssetsList, 0); } } }